题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
#include <iostream> using namespace std; int findhui(string& s, int i){ int res = 1; int j = i - 1; int k = i + 1; while(j >= 0 && k < s.size()){ if(s[j] == s[k]) res += 2; else break; j--; k++; } return res; } int findhui2(string& s, int i1, int i2){ int res = 0; while(i1 >= 0 && i2 < s.size()){ if(s[i1] == s[i2]) res += 2; else break; i1--; i2++; } return res; } int main() { string s; cin >> s; int res1 = 0; int res2 = 0; for(int i = 0; i < s.size(); i++){ res1 = max(res1, findhui(s, i)); res2 = max(res2, findhui2(s, i, i + 1)); } cout << max(res1, res2)<<endl; return 0; }