http://pat.zju.edu.cn/contests/pat-a-practise/1040
c++中,带空格字符串的输入
#include <iostream>
#include <string>
using namespace std;
int getSym(string str,int pos)
{
int len=str.length();
int num1=0,num2=0,low,high;
//处理aba情况
low=pos-1;
high=pos+1;
while ( low>=0 && high<len && str[low]==str[high])
{
num1++;
low--;
high++;
}
int len1=2*num1+1;
//处理abba情况
low=pos;
high=pos+1;
while ( low>=0 && high<len && str[low]==str[high])
{
num2++;
low--;
high++;
}
int len2=2*num2;
return len1>len2?len1:len2;
}
int main()
{freopen("D:\\1.txt","r",stdin);
string str;
getline(cin,str); //如果cin,遇到空格就结束,c中使用gets(),c++中用getline()
int maxlen=1,len,i,t;
len=str.length();
for (i=0;i<len;i++)
{
t=getSym(str,i);
if (t>maxlen)
{
maxlen=t;
}
}
cout<<maxlen;
return 0;
}