求解最长回文子串的长度
2016-06-07 11:57
363 查看
直接上代码:
class Palindrome {
public:
int getLongestPalindrome(string A, int n) {
// write code here
int rs=1;
string str="#";
for(int i=0;i<n;i++){
str+=A[i];
str+="#";
}
for(int j=1;j<str.size();j++)
{
int temp=1,start=j-1,end=j+1;
while(end<=str.size()&&start>=0){
if(str[end]==str[start]){
end++;
start--;
temp++;
}
else
break;
}
if(temp>rs)
rs=temp;
}
return rs-1;
}
};
以上是我实现的,当然对于这一题有专门的算法来解决,即:Manacher算法,其原理我感觉有点复杂,这里先提出来,以备以后温习多看几遍。(其原理和源代码这里不再给出,百度一大片)
class Palindrome {
public:
int getLongestPalindrome(string A, int n) {
// write code here
int rs=1;
string str="#";
for(int i=0;i<n;i++){
str+=A[i];
str+="#";
}
for(int j=1;j<str.size();j++)
{
int temp=1,start=j-1,end=j+1;
while(end<=str.size()&&start>=0){
if(str[end]==str[start]){
end++;
start--;
temp++;
}
else
break;
}
if(temp>rs)
rs=temp;
}
return rs-1;
}
};
以上是我实现的,当然对于这一题有专门的算法来解决,即:Manacher算法,其原理我感觉有点复杂,这里先提出来,以备以后温习多看几遍。(其原理和源代码这里不再给出,百度一大片)
相关文章推荐
- C#实现回文检测的方法
- PHP输出两个数字中间有多少个回文数的方法
- PHP判断一个字符串是否是回文字符串的方法
- java判断回文数示例分享
- 漫谈递归:字符串回文现象的递归判断
- Java-Palindrome Partitioning
- P06 (*) 判断一个列表是否是回文列表
- Longest Palindromic Substring
- P06 (*) 判断一个列表是否是回文列表
- leetcode:Valid Palindrome 菜鸟解法
- Leetcode Q9: Palindrome Number
- Leetcode Q5:Longest Palindromic Substring
- LeetCode - Longest Palindromic Substring 题解
- 最长回文字串
- 使用栈来检测回文字符串
- 回文数的判断方法之一
- 判断单链表回文
- 回文判断
- LEETCODE: Palindrome Partitioning II
- [LeetCode] Longest Palindrome Substring 详细分析