题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
//最暴力的解法
#include <iostream>
#include <string>
#include <set>
using namespace std;
int main() {
string strs;
cin >> strs;
set<string> substr;
for (int i = 0;i < strs.size();i++)
{
for (int j = 0;j < strs.size();j++)
{
string newstr = strs.substr(i,j - i + 1); //将字符串剪切下来
substr.insert(newstr); //将剪切下来的字符串保存并去重
}
}
string max_substr; //定义最长字符串
int num = 0; //最长字符串的长度
for (auto it : substr)
{
for (int i = 0;i < it.size() / 2;i++)
{
if (it[i] != it[it.size() - i - 1])
{
break;
}
else
{
if (i == it.size() / 2 - 1)
{
if (it.size() > num)
{
max_substr = it;
num = it.size();
}
}
}
}
}
//cout << max_substr << endl;
cout << num << endl;
}
// 64 位输出请用 printf("%lld")