1524. 最长回文子串(简便奇数偶数推导)

it2023-10-25  87

给定一个字符串,请你求出其中的最长回文子串的长度。

例如,给定字符串 Is PAT&TAP symmetric?,最长回文子串为 s PAT&TAP s,其长度是 1111。

输入格式 包含一个非空字符串。

输出格式 输出一个整数,表示给定字符串的最长回文子串的长度。

数据范围 给定字符串的长度不超过 10001000。

输入样例:

Is PAT&TAP symmetric?

输出样例:

11 #include <iostream> #include <cstring> using namespace std; int main() { string str; getline(cin, str); int res = 0; for (int i = 0; i < str.size(); i ++ ) { int l=i-1,r=i+1; while(l>=0&&r<str.size()&&(str[l]==str[r]))l--,r++; res=max(res,r-l-1); l=i,r=i+1; while(l>=0&&r<str.size()&&(str[l]==str[r]))l--,r++; res=max(res,r-l-1); } cout<<res; return 0; }
最新回复(0)