CF1660C Get an Even String 题解

· · 题解

本蒟蒻第三篇题解。

这是一道好题,有那么一丢丢的思维。

下面讲一下思路

下面附上 AC 代码:

#include <cstdio>
#include <cstring> //strlen、memset函数所在的库
#define maxn 200005
#define maxm 35
using namespace std;
int t,ans;
int f[maxm];
char s[maxn];
inline void in(int &a){ //快速读入
    a=0;char ch=getchar();
    while(ch<'0'||ch>'9')
        ch=getchar();
    while(ch>='0'&&ch<='9'){
        a=(a<<1)+(a<<3)+(ch^48);
        ch=getchar();
    }
}
int main(){
    in(t);
    while(t--){
        memset(f,0,sizeof(f));
        scanf("%s",s);
        ans=strlen(s); //将ans赋值为s串的长度
        //strlen函数的作用是测量字符串的长度
        for(int i=0;s[i];++i){ //见思路
            f[s[i]-'a']++;
            if(f[s[i]-'a']==2){
                ans-=2;
                memset(f,0,sizeof(f));
            }
        }
        printf("%d\n",ans);
    }
    return 0;
}