Longest Palindromic Substring [LeetCode] 最长回文子串
2014-08-06 10:28
731 查看
题目链接:Longest Palindromic Substring
/*
思路:
从第i个元素开始遍历,两种情况:
a) 回文串为奇数时,从第i个向左(i-j),向右(i+j)遍历,不相等则跳出。
b) 回文串为偶数时,从第i个向左(i-j),向右(i+1+j)遍历,不相等则跳出。
用maxx记录最大长度,pos记录回文串的起点
*/
class Solution {
public:
string longestPalindrome(string s) {
int len = s.size();
int maxx = 0, pos;
for(int i = 0; i < len; i ++) {
for(int j = 0; i-j >= 0 && i+j < len; j ++) {//回文串为奇数
if(s[i-j] != s[i+j]) break;
if(2*j+1 > maxx) {
maxx = 2*j+1;
pos = i-j;
}
}
for(int j = 0; i-j >= 0 && i+1+j < len; j ++) {//回文串为偶数
if(s[i-j] != s[i+1+j]) break;
if(2*j+2 > maxx) {
maxx = 2*j+2;
pos = i-j;
}
}
}
return string(s, pos, maxx);
}
};
/*
思路:
从第i个元素开始遍历,两种情况:
a) 回文串为奇数时,从第i个向左(i-j),向右(i+j)遍历,不相等则跳出。
b) 回文串为偶数时,从第i个向左(i-j),向右(i+1+j)遍历,不相等则跳出。
用maxx记录最大长度,pos记录回文串的起点
*/
class Solution {
public:
string longestPalindrome(string s) {
int len = s.size();
int maxx = 0, pos;
for(int i = 0; i < len; i ++) {
for(int j = 0; i-j >= 0 && i+j < len; j ++) {//回文串为奇数
if(s[i-j] != s[i+j]) break;
if(2*j+1 > maxx) {
maxx = 2*j+1;
pos = i-j;
}
}
for(int j = 0; i-j >= 0 && i+1+j < len; j ++) {//回文串为偶数
if(s[i-j] != s[i+1+j]) break;
if(2*j+2 > maxx) {
maxx = 2*j+2;
pos = i-j;
}
}
}
return string(s, pos, maxx);
}
};
相关文章推荐
- LeetCode Longest Palindromic Substring(最长回文子串)
- LeetCode | Longest Palindromic Substring(最长回文子串)
- leetcode-5. Longest Palindromic Substring(寻找最长回文子串)
- leetcode (5) - Longest Palindromic Substring 最长回文子串
- LeetCode:5_Longest Palindromic Substring | 最长的回文子串 | Medium
- LeetCode:Longest Palindromic Substring 最长回文子串
- 最长回文子串-LeetCode 5 Longest Palindromic Substring
- LeetCodeOJ_5_m_Longest Palindromic Substring(最长回文子串)
- LeetCode:Longest Palindromic Substring 最长回文子串
- 【LeetCode-面试算法经典-Java实现】【005-Longest Palindromic Substring(最长回文子串)】
- leetcode--Longest Palindromic Substring--最长回文子串--
- Longest Palindromic Substring 在一个字符串里找最长回文子串@LeetCode
- LeetCode-Longest Palindromic Substring-最长回文子串-Manacher
- LeetCode 5. Longest Palindromic Substring(最长回文子串)
- LeetCode-5 Longest Palindromic Substring(求最长回文子串)
- [C++]LeetCode 5: Longest Palindromic Substring(最长回文子串)
- leetcode Longest Palindromic Substring最长回文子串
- 【LeetCode】Longest Palindromic Substring && 【九度】题目1528:最长回文子串(腾讯2013年实习生招聘二面面试题)
- leetcode(5)—— Longest Palindromic Substring(最长回文子串)
- Leetcode: 5 Longest Palindromic Substring 最长回文子串