【发布时间】:2021-03-25 11:26:08
【问题描述】:
问题 - 最近,Anton 找到了一套。该集由小英文字母组成。安东小心翼翼地把集合中的所有字母写成一行,用逗号隔开。他还在行首添加了一个左曲括号,在行尾添加了一个右曲括号。
不幸的是,安东有时会忘记写一些信,然后再写一遍。他要求你数一数他的集合中不同字母的总数。
输入 - 第一行和单行包含一组字母。线的长度不超过 1000。保证该线从一个开口弧形括号开始,以一个闭合弧形括号结束。在它们之间,列出了小英文字母,用逗号分隔。每个逗号后跟一个空格。
输出 - 打印一个数字——Anton 集合中不同字母的数量。
代码强制问题链接 - https://codeforces.com/problemset/problem/443/A
我的代码 -
int main(){
string s;
int count=0;
getline(cin,s);
for(int i=0;i<s.length();i++){
if(s[i]==' ' || s[i]=='}' || s[i]=='{' || s[i]==','){
s.erase(i,1);
}
}
for(int i=0;i<s.length();i++){
cout << s[i];
}
sort(s.begin(),s.end());
for(int i=0;i<s.length();i++){
if(s[i]==s[i+1]){
count++;
}
}
cout << endl << (s.length()-count);
}
问题是当我输出字符串时,它也会显示我不想要的空格。输入将包含空格,例如 - {a, b, c}。 if 函数不知何故无法从字符串中删除该空格,这可能是什么问题,我该如何解决?
【问题讨论】:
-
想想你删除了索引
i处的字符后下一个字符的索引是多少 -
它将保持
i(?) -
我很确定这已经被询问和回答了,但我找不到它:(
-
我明白我的错误,我现在感觉很愚蠢@largest_prime_is_463035818
-
没有理由感到愚蠢,这是每个人都必须至少犯一次的错误之一
标签: c++ string algorithm if-statement getline