0
已解决
#include<iostream>
using namespace std;
int b[122],cnt=0;
int main(){
string s;
cin>>s;
for(int i=0;i<s.size();i++){
if(s[i]>='A'&&s[i]<='z'){
b[s[i]]++;
}
}
for(int i=1;i<=122;i++){
if(b[i]!=0){
for(int j=1;j<=b[i];j++)
{
cout<<char(i);
}
cout<<b[i]<<endl;
}
}
return 0;
}
请问哪里错了?
0
已采纳
- 题目思路如下:
- 1、遍历字符串,创建桶数组。
- 2、留下“非0”并是字母的字符(ASCII码)。
- 3、输出上一步留下的字符(先从 ASCII 码强制类型转换成字符)。
- 特别注意:遍历字符串要从 0 至 n-1。
陈曦在2020-03-21 21:17:30追加了内容
你错在:
遍历到 s.size()-1
陈曦在2020-03-21 21:18:23追加了内容
多了一个后括号。
陈曦在2020-03-21 21:19:11追加了内容
没多,说错了
陈曦在2020-03-21 22:22:24追加了内容
第8行:"A"-"z"之间还有除字母之外的字符。
建议分开判断:
“A"-"Z" 65-90
"a"-"z" 97-122
0