P12714 [Algo Beat Contest 002 A] A to Z题解

· · 题解

题面

给了 n 个字符串。问有几个字符串的每个字符都不相同。

解题思路

先开一个 t 数组,用来保存字符串 a 中每个字符出现的次数。 遍历 a ,如果 a[i] 出现过,不累加。否则把 t[ a[ i ] - 'a' ] 置为1。

如果遍历完以后都符合条件,累加。

AC代码

#include<bits/stdc++.h>
using namespace std;
int main(){
    //freopen(".in","r",stdin);
    //freopen(".out","w",stdout);
    //ios::sync_with_stdio(false);
    //cin.tie(0);
    //cout.tie(0);
    int s=0;
    int T;
    cin>>T;
    while(T--){
        string a;
        cin>>a;
        int t[30]={0};//桶数组
        bool flag=1;//标记
        for(int i=0;i<a.size();i++){
            if(t[a[i]-'a']){//出现过
                flag=0;break;
            }
            t[a[i]-'a']=1;
        }
        if(flag) s++;//累加答案
    }
    cout<<s;
    return 0;
}