题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805067704549376
题意:求给定字符串的最长回文串的长度。
思路:数据太弱了,暴力就行了,遍历0到len-1,当前点为i,则以i为中点的奇回文串是从i-j到i+j(1<=j<=len),偶回文串从i-j+1到i+j,两层循环。然后吐槽一下pta的题,题目说了输入字符串为非空,但有个测试点就卡了孔字符串,需要输出0,写天梯赛的题还是多注重细节,尤其是边界条件。
AC代码:
#includeusing namespace std;string s;int len,res,tmp;int main(){ getline(cin,s); len=s.length(); for(int i=0;i =len||s[i-j]!=s[i+j]) break; tmp+=2; } if(tmp>res) res=tmp; tmp=0; for(int j=1;j =len||s[i-j+1]!=s[i+j]) break; tmp+=2; } if(tmp>res) res=tmp; } printf("%d\n",res); return 0;}