题解 | #最长回文子串#
最长回文子串
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")