매일 조금씩

Leet code (Medium): 647. Palindromic Substrings (중심확장법) - Java 본문

알고리즘/String

Leet code (Medium): 647. Palindromic Substrings (중심확장법) - Java

mezo 2024. 10. 28. 15:03
728x90
반응형

 

이 또한 중간 확장법을 사용해서

문자열의 문자하나를 기준점으로 찍으면서

각각에 홀수, 짝수로 나눠서 팰린드롬 갯수를 카운트 했다.

 

class Solution {
    private int count = 0;  // 팰린드롬 수

    public int countSubstrings(String s){
        if(s.length() <= 1){
            return 1;
        }

        for(int i = 0; i < s.length(); i++){
            // 홀수 길이 팰린드롬
            expandFromCenter(s, i, i);
            // 짝수 길이 팰린드롬
            expandFromCenter(s, i, i+1);
        }
        
        return count;
    }

    private void expandFromCenter(String s, int start, int end){
        while(start >= 0 && end < s.length() && s.charAt(start) == s.charAt(end)){
            start--;
            end++;
            count++;
        }
    }
}
728x90
반응형