[Java] 회문 문자열 2

전.java / / 2023. 1. 27. 15:16
728x90

- 최대 문자 1개를 지워서 회문 문자열이 되는지 확인

 

(입력)

abcbdcba
abcabbakcba
abcacbakcba
abckabbacba

 

(출력)

 

 


public class Main {

    public Boolean isPalindrome(String s) {
        Boolean answer = true;
        int l = 0;
        int r = s.length()-1;

        while (l<r) {
            if(s.charAt(l) != s.charAt(r)) return false;
            l++;
            r--;
        }
        return answer;
    }

    private String solution(String s) {
        String answer = "YES";
        int l = 0;
        int r = s.length()-1;

        while (l<r){
            if(s.charAt(l) != s.charAt(r)) {
                String s1 = s.substring(l, r);
                String s2 = s.substring(l+1, r+1);
                if(!isPalindrome(s1) && !isPalindrome(s2)) return "NO";
            }
            l++;
            r--;
        }

        return answer;
    }

    public static void main(String[] args) {
        Main T = new Main();
        System.out.println(T.solution("abcbdcba"));
        System.out.println(T.solution("abcabbakcba"));
        System.out.println(T.solution("abcacbakcba"));
        System.out.println(T.solution("abckabbacba"));
    }
}

- subString(l, r) 과 subString(l+1, r+1) 이 회문 문자열인지를 사용

반응형

'전.java' 카테고리의 다른 글

[Java] 학급 회장  (0) 2023.01.27
[Java] 특정 문자 뒤집기  (0) 2023.01.27
[Java] 회문 문자열  (0) 2023.01.27
[Java] 문자열 압축  (1) 2023.01.26
[Java] 백준 10807 개수 세기  (1) 2023.01.16
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기