728x90
https://leetcode.com/problems/longest-palindromic-substring/description/
public class Solution
{
public string LongestPalindrome(string s)
{
var answer = $"{s.First()}";
if (s.Length == 1)
return answer;
for (int i = 0; i < s.Length - 1; i++)
{
int left = i - 1;
int right = i + 1;
if ((left >= 0) && (s[left] == s[right]))
GetLongestPalindrome(in s, left, right, ref answer);
if (s[i] == s[right])
GetLongestPalindrome(in s, i, right, ref answer);
}
return answer;
}
private string GetLongestPalindrome(in string s, int left, int right, ref string answer)
{
while ((left >= 0) && (right < s.Length) && (s[left] == s[right]))
{
int length = right - left + 1;
if (answer.Length < length)
answer = s.Substring(left, length);
--left;
++right;
}
return answer;
}
}
728x90
'Programing > Algorithm' 카테고리의 다른 글
[LeetCode] 7. Reverse Integer (0) | 2025.02.07 |
---|---|
[LeetCode] 6. Zigzag Conversion (0) | 2025.02.07 |
[LeetCode] 4. Median of Two Sorted Arrays (0) | 2025.01.21 |
[LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2025.01.20 |
[LeetCode] 2. Add Two Numbers (0) | 2025.01.20 |