[LeetCode] Longest Palindromic Substring

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.

用一个指针从0遍历到s.size()-1,从里向外来检测子串是否是回文,分两种情况:1)bab, 2)bb。也就是当前指针可能指向的是奇数回文,也可能是偶数回文。做两次检测。

复制代码
 1 class Solution {
 2 public:
 3     string findPal(string &s, int left, int right)
 4     {
 5         if (left < 0)
 6             return s.substr(left+1, 1);
 7             
 8         if (right >= s.size())
 9             return s.substr(right-1, 1);
10             
11         while(0 <= left && right < s.size())
12         {
13             if (s[left] != s[right])
14                 break;
15             left--;
16             right++;
17         }
18         
19         left++;
20         right--;
21         
22         return s.substr(left, right - left + 1);        
23     }
24     
25     string longestPalindrome(string s) {
26         // Start typing your C/C++ solution below
27         // DO NOT write int main() function
28         if (s.size() == 0)
29             return "";
30             
31         string ret;
32         
33         for(int i = 0; i < s.size(); i++)
34         {
35             string str = findPal(s, i - 1, i + 1);
36             if (str.size() > ret.size())
37                 ret = str;
38                 
39             str = findPal(s, i, i + 1);
40             if (str.size() > ret.size())
41                 ret = str;
42         }
43         
44         return ret;
45     }
46 };
复制代码

 

 

posted @   chkkch  阅读(1706)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示