5. Longest Palindromic Substring
来源:互联网 发布:淘宝店买什么好 编辑:程序博客网 时间:2024/06/14 17:39
题目:
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Input: "babad"Output: "bab"Note: "aba" is also a valid answer.
Example:
Input: "cbbd"Output: "bb"思路:
本题一开始假设最大回文子字符串长度为Max=s.size(),然后判断是否符合要求,不符合Max--,继续判断,知道发现符合要求的子字符串就直接返回子字符串,但是TimeLimit,但是思路可以参考,算是一种贪心的算法
代码:
class Solution {public: string longestPalindrome(string s) { int max = s.size(); string str = s.substr(0,1),sub_str; int i = 0; while(1) { for(int j = i;j<=s.size()-max;j++) { sub_str = s.substr(j,max); if(judge(sub_str)) { return sub_str; } } max--; i=0; if(max==1) break; } return str; }private: bool judge(string s) { string::iterator begin = s.begin(); string::iterator end = s.end(); end--; for(;begin<end;begin++,end--) { if(*begin!=*end) { flag = end return false; } } return true; }};思路:
第二种思路直接采用官方解答方法:Expand Around Center
代码:
class Solution {public: string longestPalindrome(string s) { int start = 0, end = 0; for (int i = 0; i < s.length(); i++) { int len1 = expandAroundCenter(s, i, i); int len2 = expandAroundCenter(s, i, i + 1); int len = max(len1, len2); if (len > end - start) { start = i - (len - 1) / 2; end = i + len / 2; } } return s.substr(start, end-start+1); }private: int expandAroundCenter(string s,int left, int right){ int L = left, R = right; while (L >= 0 && R < s.length() && s[L] == s[R]) { L--; R++; } return R-L-1; }};
阅读全文
1 0
- 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
- 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 性能优化学习笔记.
- 17.9.1日报
- 利用CoreAnimation实现一个时间的进度条
- srs-bench 针对特定业务性能测试并发推流 解决方案
- javaWEB项目中webSocket的简单应用
- 5. Longest Palindromic Substring
- JAVA入门第一式
- 版本控制之SVN(一)
- 前端面试系列之---异步 单线程
- 腾讯社交广告“高校算法大赛” Amelie 30th
- 位运算应用技巧(给各位对于位运算不知所云的新手们)
- Centos 配置本地yum源
- 前端面试系列之---DOM操作 BOM
- 机器学习故事汇-逻辑回归算法