最长回文字串的提取
来源:互联网 发布:spring mvc js国际化 编辑:程序博客网 时间:2024/05/22 13:46
#include <iostream>#include <string>using namespace std;class Solution {public:string longestPalindrome(string s) {if (s.empty() || s.size() == 1)return s;int minStart = 0;int maxlength = 0;int i = 0;//while (i < s.size())for (; i < s.size();){if (maxlength / 2 >= s.size() - i)break;//记录头与尾下标int pStart = i, pEnd = i;//跳过所有相同元素,注意到,如果从当前位置开始没有连续相同的元素,则pStart == pEnd;while (pEnd < s.size()-1 && s[pEnd] == s[pEnd+1])++pEnd;//更新 ii = pEnd + 1;//只能在此更新i的值,而不是用下面的pEnd去更新i的值,因为后面可能还有更长的回文//扩展回文while (pStart > 0 && pEnd < s.size()-1 && s[pStart-1] == s[pEnd+1]){++pEnd;--pStart;}//计算新的长度int newLength = pEnd - pStart + 1;if (newLength > maxlength){maxlength = newLength;minStart = pStart;}}return s.substr(minStart, maxlength);}};int main(){string s("eabcb");Solution solu;cout << solu.longestPalindrome(s) << endl;system("pause");return 0;}
1 0
- 最长回文字串的提取
- 最长回文字串的提取(相当精简!)
- 字符串的最长回文字串
- 【最长回文字串】Calf Flac 最长的回文 (Usaco_Training 1.3)
- 求最长回文字串的长度
- Longest Palindromic Substring 最长的回文字串
- 最长回文字串
- 求解最长回文字串
- 最长回文字串
- 最长回文字串
- 最长回文字串
- 最长回文字串
- 最长回文字串
- hihocoder1032:最长回文字串
- 最长回文字串 lintcode
- 求最长回文字串
- 最长回文字串
- 最长回文字串
- 总结帖:android应用中适配各种分辨率的方法
- iOS开发拓展篇—CoreLocation地理编码
- 用css3解决移动端页面自适应横屏竖屏的思考
- 含通配符的字符串匹配问题
- MyEclipse创建自己类库
- 最长回文字串的提取
- 分布式solr-cloud之zookeeper部署
- iOS开发拓展篇—音频处理(音乐播放器1)
- char * a, char ** a, char * a[] 区别
- 苹果发布ipa包的几种方式讲解
- 剑指offer: 不用加减乘除做加法
- android开发环境搭建 eclipse ADT
- 正则表达式一
- iOS开发拓展篇—音频处理(音乐播放器2)