回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。
输入一个字符串Str,输出Str里最长回文子串的长度。
Input
输入Str(Str的长度 <= 1000)
Output
输出最长回文子串的长度L。
Input示例
daabaac
Output示例
输入一个字符串Str,输出Str里最长回文子串的长度。
Input
输入Str(Str的长度 <= 1000)
Output
输出最长回文子串的长度L。
Input示例
daabaac
Output示例
5
题意:。。。。
思路:从某个字符向两边遍历,用一变量记录比较即可,因为数据较小所以直接暴力即可;
下面附上代码:
#include<bits/stdc++.h>
using namespace std;
char a[1005];
int main()
{
int ans,tem=0;
scanf("%s",a);
int l=strlen(a);
for(int i=0;i<l;i++){
for(int j=1;i+j<l&&(i-j)>=0;j++)//长度为奇数的字符串
{
if(a[i-j]!=a[i+j])
break;
ans=2*j+1;
tem=max(ans,tem);
}
for(int j=0;i+j+1<l&&(i-j)>=0;j++)//长度为偶数的字符串
{
if(a[i-j]!=a[i+j+1])
break;
ans=2*j+2;
tem=max(ans,tem);
}
}
printf("%d\n",tem);
return 0;
}