贪心
转换思路,考虑提取最长的满足条件的子序列。越早配对成功下次配对就有越多字符可选,每次贪心选择最早成对出现的字符。
#include<bits/stdc++.h>
using namespace std;
constexpr int inf=1000000000;
char s[200005];
void solution(){
scanf("%s",s+1);
const int n=strlen(s+1);
map<char,int> m;
int ans=n;
for(int i=1;i<=n;i++) if(++m[s[i]]==2) ans-=2,m.clear();
printf("%d\n",ans);
}
int T;
int main(){
scanf("%d",&T);
while(T--) solution();
return 0;
}