# 문제 설명
- 팰린드롬 최대길이 문자열 구하는 문제
- 문자열 index 기준으로 투포인터 써서 왼쪽 오른쪽으로 문자 계산
- O(N^2)시간으로 해결
- 팰린드롬 문자열 길이가 짝수인 경우와 홀수인 경우 둘다 고려해야함.
abba
와aba
인 경우 둘다 검사가 필요하므로 코드에서 while문이 두개로 쪼개짐
class Solution {
func longestPalindrome(_ s: String) -> String {
var result = ""
var subString = ""
var s = Array(s)
var left = 0
var right = 0
for index in 0..<s.count {
left = index
right = index
while(left >= 0 && right < s.count && s[left] == s[right]) {
left -= 1
right += 1
}
left += 1
right -= 1
if right - left + 1 > result.count {
subString = String(s[left...right])
result = subString.count > result.count ? subString : result
}
left = index
right = index + 1
while(left >= 0 && right < s.count && s[left] == s[right]) {
left -= 1
right += 1
}
left += 1
right -= 1
if right - left + 1 > result.count {
subString = String(s[left...right])
result = subString.count > result.count ? subString : result
}
}
return result
}
}