题解 | #最长回文子串# C/C++解法,两个for循环,直接暴力
最长回文子串
http://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
#include<bits/stdc++.h>
using namespace std;
int main()
{
string str;
while(cin>>str)
{
int len=0;
for(int i=0;i<str.size();i++)
{
for(int j=str.size()-1;j>i;j--)
{
int m=i,n=j;int tmp=0;
while(str[m]==str[n])
{
tmp++;
m++;n--;
if(m>=n)//说明回文成立
{
if(m==n) tmp=2*tmp+1;//若m==n,则回文为奇数,需要+1
else tmp*=2;
if(len<tmp) len=tmp;
break;
}
}
}
}
cout<<len<<endl;
}
}
查看16道真题和解析

