小A正在解开一个谜题:他获得了一个n位的字符串s,谜题需要小A在s中删掉一些字符,使得s变成一个奇特的串。
如果一个字符串左移一位等于它右移一位,即s2s3s4…sn-1sns1等于sns1s2…sn-2sn-1则称该串为奇特的串
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
char s[200005];
int cnt[10],ed[200005][10];
int main(){
int T;
scanf("%d",&T);
while (T--){
scanf("%s",s+1);
int l=strlen(s+1);
memset(cnt,0,sizeof(cnt));
for (int i=1; i<=l; i++)
cnt[s[i]-'0']++;
for (int j=0; j<10; j++)
ed[l+1][j]=l+1;
for (int i=l; i>=1; i--){
for (int j=0; j<=9; j++)
ed[i][j]=ed[i+1][j];
_______(1)_________
}
int res=0;
for (int i=0; i<=9; i++){
if (cnt[i]==0) continue;
res=max(res,_____(2)______);
for (int j=0; j<=9; j++){
if (cnt[j]==0) continue;
if (i!=j){
int st=ed[1][i],tot=0,flag=1;
while (________(3)_________){
tot++;
if (flag) {
if (ed[st+1][j]>l) break;
_________(4)________
}
else {
if (ed[st+1][i]>l) break;
_________(5)________
}
flag=flag^1;
}
if (tot%2==1) _______(6)________
res=max(res,tot);
}
}
}
printf("%d\n",l-res);
}
return 0;
}