https://school.programmers.co.kr/learn/courses/30/lessons/12904?language=csharp
문자열의 부분문자열 중 가장 긴 팰린드롬의 길이 반환
문자열 한번 쭉 돌면서 해당 인덱스를 mid로 뒀을 때 짝수랑 홀수 palindrome 확인해서 길이 구하기
using System;
public class Solution {
public int solution(string s) {
int answer = 1;
for (int i = 1; i < s.Length - 1; i++)
{
answer = Math.Max(answer, GetOddPalindromeLength(i, s));
answer = Math.Max(answer, GetEvenPalindromeLength(i, i + 1, s));
}
return answer;
}
public int GetOddPalindromeLength(int mid, string s)
{
int length = 1;
int i = 1;
while (mid - i >= 0 && mid + i < s.Length)
{
if (s[mid - i] != s[mid + i])
{
return length;
}
i += 1;
length += 2;
}
return length;
}
public int GetEvenPalindromeLength(int mid1, int mid2, string s)
{
int length = 2;
int i = 1;
if (s[mid1] != s[mid2]) return length;
while (mid1 - i >= 0 && mid2 + i < s.Length)
{
if (s[mid1 - i] != s[mid2 + i])
{
return length;
}
i += 1;
length += 2;
}
return length;
}
}