题目链接:P7398 [COCI2020-2021#5] Šifra - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目描述
给定一个长度不超过 100 的只包含小写字母和 0 ~ 9 字符的字符串(字符串中的字母可视为分隔符)。求字符串中包含多少个不同的数。
输入格式
一行只包含小写字母和 0 ~ 9 字符的字符串,保证每个数最多有 3 位。
输出格式
输出字符串中不同数的数量。
样例 #1
样例输入 #1
abc123abc2a3a1
样例输出 #1
4
样例 #2
样例输入 #2
borna123vitez
样例输出 #2
1
样例 #3
样例输入 #3
as23dkrf23smk1asd23sam9
样例输出 #3
3
提示
数据规模与约定
对于 50% 的数据,所有出现的数都互不相同。
对于 100% 的数据,字符串的长度在 1 到 100 之间。
说明
本题分值按 COCI 原题设置,满分 50。
题目译自 COCI2020-2021 CONTEST #5 T1 Šifra。
AC code:
#include<iostream>
#include<algorithm>
#include<set>
using namespace std;
int main()
{
string s;
cin>>s;
set<string> res;
int len=s.size();
for(int i=0;i<len;i++)
{
string t;
int tmp=0;
bool flag=0;
for(int j=i;j<i+3;j++)
{
if('0'<=s[j] && s[j]<='9')
t+=s[j],tmp++,flag=1;
else
break;
}
if(flag==1)
{
i+=tmp;
res.insert(t);
}
}
cout<<res.size();
return 0;
}