logo AlgoBeat OnlineJudge
登录 注册

BicycleCompetition题解(转存,来自@zhoumurui,原网址:https://www.luogu.me/article/1gh0j55t)

作者: yzl_Alvin  ·  发布于 2026-06-04 12:52:47  ·  最后修改于 2026-06-04 23:00:45
已通过
审核员:UnratedCheater 终将消亡 · 2026-06-04 23:00:45

题面展示

给出 个字符串,询问其中有几个是所有字符各不相同的。

解题思路

这里给出 set 做法。

set<T> 是一种 STL 数据结构,用来维护由 T 组成的集合。下面假设一个集合的名字为 s,一个 T 类型的变量为 t

  • s.insert(t);t 插入集合中。
  • s.find(t) 寻找 t 是否在集合 s 中,如果存在,以 set<T>::iterator 的形式返回 ts 中的位置;如果不存在,返回 s.end()

那么容易用 set 判断一个字符串的所有字符是否各不相同。

代码展示

#include<bits/stdc++.h>
using namespace std;
signed main(){
    int n;
    cin>>n;
    int cnt=0;
    for (int i=1;i<=n;i++){
        string s;
        cin>>s;
        set<char> p;
        int flag=1;
        for (int j=0;j<s.length();j++){
            if (p.find(s[j])!=p.end()){
                flag=0;
                break;
            }
            p.insert(s[j]);
        }
        cnt+=flag;
    }
    cout<<cnt<<"\n";
    return 0;
}

暂无评论

登录 后即可评论。