题目链接:http://codeforces.com/problemset/problem/391/B
题目描述:
= =。。我英语真是渣爆了。字符串折叠的意思就是、、折叠起来。然后要求折叠完之后,这个“字符块”必须一竖排是一样字母,我就是没看懂这里的英文描述,想偏了许多,各种悲催。
解题思路:
看懂题意之后就不难了。二十六个字母遍历一遍,配合小标记变量 record 很容易完成。
AC代码:
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
char str[1200];
int ans[30];
int main()
{
cin>>str;
int i,len,j,first,record;
len=strlen(str);
char sign;
memset(ans,0,sizeof(ans));
for(sign='A';sign<='Z';sign++)
{
first=0;
for(i=0;i<len;i++)
{
if(str[i]==sign)
{
if(!first)
{first=1;record=i;ans[sign-'A']++;}
if((i-record)%2==1)
{
ans[sign-'A']++;
record=i;continue;
}
}
}
}
int maximum=0;
for(i=0;i<30;i++)
maximum=max(maximum,ans[i]);
cout<<maximum<<endl;
return 0;
}
AC截图: