프로그래머스  - (Java) 가장 긴 팰린드롬
알고리즘/프로그래머스

프로그래머스 - (Java) 가장 긴 팰린드롬

https://programmers.co.kr/learn/courses/30/lessons/12904

 

코딩테스트 연습 - 가장 긴 팰린드롬

앞뒤를 뒤집어도 똑같은 문자열을 팰린드롬(palindrome)이라고 합니다. 문자열 s가 주어질 때, s의 부분문자열(Substring)중 가장 긴 팰린드롬의 길이를 return 하는 solution 함수를 완성해 주세요. 예를들

programmers.co.kr

1. 유형

문자열

 

2. 시뮬레이션

로직

  1. 총 길이 설정
  2. 시작 위치를 설정
  3. 양 끝에서 중앙으로 이동하면서 문자가 같은지를 판단

3. 코드

class Solution{
    public int solution(String s)    {
        int answer = 1;
success:for(int len=s.length(); len>=2; len--){
            for(int start =0; start+len-1<s.length(); start++ ){
                boolean flag = true;
            fail:for(int head=start, tail=start+len-1; head<=tail; head++, tail-- ){
                    if(s.charAt(head)!=s.charAt(tail)){
                        flag = false;
                        break fail;
                    }
                }
                if(flag){
                    answer = len;
                    break success;
                }
            }
        }
        return answer;
    }
}