LeetCodeOJ——5.Longest Palindromic Substring
来源:互联网 发布:淘宝箱包排名 编辑:程序博客网 时间:2024/05/20 06:53
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.
解题思路:最长回文子串问题,很经典的问题。但一开始怎么也想不出,因此首先暴力一番。
代码:
class Solution {public: string longestPalindrome(string s) { int maxlen=0,len,ki=0,kj=0; for(int i=0;i<s.size();i++){ for(int j=i;j<s.size();j++){ len=judge(i,j,s); if(len>maxlen){ maxlen=len; ki=i; kj=j; } } } return s.substr(ki,kj-ki+1); } int judge(int i,int j,string s){ int m=i,n=j; while(m<=n){ if(s[m]!=s[n]){ break; } m++,n--; } if(m<n){ return -1; } else{ return j-i+1; } }};
显而易见:Time Limit Exceeded,时间复杂度为O(n3)。因此解法二,以字符串的每个字符(字符串长度为奇数,如“aba”)或每两个字符(字符串长度为偶数,如“abba”)为中心,向两边扩展,时间复杂度为O(n2)。
代码如下:
class Solution {public: string longestPalindrome(string s) { string tempStr,longestStr(""); for(int i=0;i<s.length();i++){ tempStr=getLongestStr(s,i,i); if(tempStr.length()>longestStr.length()){ longestStr=tempStr; } tempStr=getLongestStr(s,i,i+1); if(tempStr.length()>longestStr.length()){ longestStr=tempStr; } } return longestStr; } string getLongestStr(string s,int i,int j){ for(;i>=0&&j<=s.length();i--,j++){ if(s[i]!=s[j]){ break; } } return s.substr(i+1,j-i-1); }};
0 0
- LeetCodeOJ——5.Longest Palindromic Substring
- LeetCodeOJ.Longest Palindromic Substring
- LeetCode——5. Longest Palindromic Substring
- Leetcode——5. Longest Palindromic Substring
- leetCode—Longest Palindromic Substring
- LeetCode5—Longest Palindromic Substring
- leetcode—Longest Palindromic Substring
- 5.Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5.Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5.Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring
- 5.Longest Palindromic Substring
- 5. Longest Palindromic Substring
- Android面试之Activity生命周期
- HX711简介
- 序列化
- 从启动日志看Spring IOC的初始化和Bean生命周期
- 上传视频
- LeetCodeOJ——5.Longest Palindromic Substring
- Get与Post的区别
- 滑动窗口的最大值
- Python的拷贝
- REST API 并发控制
- C:LINUX如何来使用传入的参数
- 135. candy 贪心算法
- 容器云平台使用体验:数人云Crane(续)
- HTML锚点