PALINDROME 오답 질문입니다

  • daeuky
    daeuky

    가장 짧은 palindrome의 길이를 구하는 문제를 풀고 있습니다.
    [[problem:PALINDROME]]

    제출 결과 오답이 떨어집니다.

    문자열을 뒤집었을때 원래 문자열과 중복되는 부분 문자열의 길이를 구합니다.
    duplicatedIndex 라는 변수에 해당 정보를 넣습니다.

    처음에는 input을 reverse하여 역순으로 정렬된 문자열과 비교했는데,
    문제의 요구사항이 길이를 반환하는 것이기 때문에
    별도로 역순으로 정렬된 문자열을 가지고 있을 필요가 없어서 제외했습니다.

    아래는 palindrome의 최소 길이를 찾기 위해 제가 구현한 소스 코드입니다.
    제가 어떤 부분을 고려하지 못했는지 잘 모르겠습니다.

    public static int getLengthOfPalindrome(String input) {
        int inputLength = input.length();
        int duplicatedIndex = 0;
    
        for(int i = 0; i < inputLength; i++) {
            if (input.charAt(i) == input.charAt(inputLength - duplicatedIndex - 1))
                duplicatedIndex++;
            else
                duplicatedIndex = 0;
        }
    
        return 2 * inputLength - duplicatedIndex;
    }
    

    감사합니다 :)


    8년 전
0개의 댓글이 있습니다.
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.