https://leetcode.com/problems/longest-palindromic-substring/
회문은 짝수로 구성될 수도 있고, 홀수로 구성될 수 있다.
그래서 두가지 케이스로 나눠서 최대값을 찾는다.
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 |