超级回文字符串 第二次做
题目链接
http://acm.hdu.edu.cn/downloads/CCPC2018-Hangzhou-ProblemSet.pdf
#include
#include<string.h>
#include
#include
#include
const int maxn=100005;
using namespace std;
int ll[maxn],ll2[maxn];
int main()
{
string s;
int t,ans,isok,isri;
cin >> t;
while(t --)
{
isok=isri=ans = 0;
memset(ll,0,sizeof(ll));
memset(ll2,0,sizeof(ll2));
cin >> s;
for(int i = 0;i < s.length();i ++)
{
int temp = s[i];
if(i % 2)
{
ll[temp] ++;
if(ll[temp] > ll[isok])
{
isok = temp;
}
}
else
{
ll2[temp]++;
if(ll2[temp] > ll2[isri])
{
isri = temp;
}
}
}
for(int i = 0;i < 300;i ++)
{
if(i != isok)
{
ans += ll[i];
}
if(i != isri)
{
ans += ll2[i];
}
}
printf("%d\n",ans);
}
return 0;
}