leetcode每日一题
程序员文章站
2022-07-12 23:17:02
...
5.最长回文子串
// 5.最长回文子串
//baolifa
class Solution {
public:
string longestPalindrome(string s) {
string tmp = "";
string res = "";
for (int i=0;i<s.length();i++)
{
for (int j=i;j<s.length();j++)
{
tmp += s[j];
string tmp1 = tmp;
reverse(tmp1.begin(), tmp1.end());
if (tmp1==tmp)
{
res = res.length() > tmp.length() ? res : tmp;
}
}
tmp = "";
}
return res;
}
};
//解法2
//将字符串s反转得到字符串rev,再求他们的最长公共子串,再判断该最长公共子串是否就是我们要找的最长回文子串。
class Solution {
public:
string longestPalindrome(string s) {
string tmp = "";
string res = "";
string rev = s;
int len = 0;
reverse(rev.begin(), rev.end());
for (int i = 0; i < s.length(); i++)
{
for (int j = i; j < s.length(); j++)
{
tmp += s[j];
if (tmp.length() < len)
{
continue;
}
else if (rev.find(tmp) != -1) {
string tmp1 = tmp;
reverse(tmp1.begin(), tmp1.end());
if (tmp1==tmp)
{
len = tmp.length(); res = tmp;
}
}
else
{
break;
}
}
tmp = "";
}
return res;
}
};