본문 바로가기
알고리즘/Array

Longest Palindrome Substring

by e-pd 2023. 10. 1.

https://leetcode.com/problems/longest-palindromic-substring/

 

LeetCode - The World's Leading Online Programming Learning Platform

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

회문은 짝수로 구성될 수도 있고, 홀수로 구성될 수 있다. 

그래서 두가지 케이스로 나눠서 최대값을 찾는다. 

 

bab지점에 왔다면

좌우 한칸씩 이동하면 cbabc 이고

다시한번 이동하면 dcbabcd가 된다.

 

 for (int i = 0; i < s.length() - 1; i++) {
            findPalindrome(s, i, i + 1);
            findPalindrome(s, i, i + 2);
        }

회문 찾기 메서드에서는 

 public void findPalindrome(String s, int l, int r) {
        while (l >= 0 && r < s.length() && s.charAt(l) == s.charAt(r)) {
            l--;
            r++;
        }
        // 최대값이라면 min, max 갱신
 }

왼쪽과 오른쪽 이동하면서 최대값을 찾는다.

찾았다면 subString을 통해 최대값 리턴

'알고리즘 > Array' 카테고리의 다른 글

trapping rain water  (0) 2023.10.21
two sum  (0) 2023.10.02
그룹 애너그램  (0) 2023.09.29
가장 흔한 단어  (0) 2023.09.29
로그 파일 정렬하기  (0) 2023.09.28