标签:nbsp logs inpu 输入 最长回文子串 跳过 mic tput 中心
class Solution { public: string longestPalindrome(string s) { if(s.empty())return ""; if(s.size()==1)return s; int maxLength=1,start=0; for(int i=0;i<s.size();){ if (s.size() - i <= maxLength / 2) break; //如果余下的长度小于当前最长回文子串长度的一半,也就不可能在出现比这个子串更长的回文子串了 int k=i,j=i; while(k<s.size()-1&&s[k]==s[k+1]){ //重复的字符看作是一个整体,都跳过 ++k; } i=k+1; //调整下一次回文子串的中心位置 while(k<s.size()-1&&j>0&&s[j-1]==s[k+1]){ //以这些个重复子串为中心,向两边散开,直到它们对应的值不同,就得到了一个回文子串 --j; ++k; } int curLength=k-j+1; if(curLength>maxLength){ maxLength=curLength; start=j; //记录这个回文子串的开始位置 } } return s.substr(start,maxLength); } };
[LeetCode]5. Longest Palindromic Substring
标签:nbsp logs inpu 输入 最长回文子串 跳过 mic tput 中心
原文地址:http://www.cnblogs.com/captzx/p/7092424.html