新手天翼
如何输出2次X
去吧代码
#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
string s;
int n;
cin>>n;
cin>>s;
for(int i=0;i<s.size();i++)
{
a[s[i]]++;
}
for(int i='A';i<='Z';i++)
{
if(a[i]!=0)
cout<<char(i)<<a[i]<<endl;
} for(int i='a';i<='z';i++)
{
if(a[i]!=0)
{
cout<<char(i)<<a[i]<<endl;
}
}
return 0;
}
不要完整代码
只求大佬指点
高子健在2020-03-14 16:30:44追加了内容
https://judge.codingtang.com/problem/3969/
高子健在2020-03-14 16:47:34追加了内容
还是不对
#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
string s;
int n;
cin>>n;
cin>>s;
for(int i=0;i<s.size();i++)
{
a[(int)s[i]]++;
}
for(int i=0;i<s.size();i++)
{
for(int i='A';i<='Z';i++)
{
if(a[i]!=0)
cout<<char(i)<<a[i]<<endl;
} for(int i='a';i<='z';i++)
{
if(a[i]!=0)
{
cout<<char(i)<<a[i]<<endl;
}
}
}
return 0;
}
只会输出
X2
Y1
Z1
a2
b2
c2
资深光能
这题还好
你的错误:首先是a[强转为int型的s[i]]++
循环条件错了,外1--140(不确定);内1--a[i]
先在内循环判断,a[i]!=0;而且char i是字母
输出强转char的i
再在外循环判断,条件同上
在里面输出次数a[i]和换行
张岳恒在2020-03-14 16:47:59追加了内容
简单来说 就是把第一个循环加加里的s[i]转成阿斯克码值++
遍历桶数组
内循环写a[i]是否为0&&是否为字母
是就输出强转后的i
跳出内
来到外
输出次数a[i]
无敌的endl
张岳恒在2020-03-14 16:49:19追加了内容
不用三重,循环条件双重遍历桶数组
高级光能
s用getline输入,a[(int)s[i]]++;改成a[s[i]]++;第二个for(int i=0;i<s.size();i++)去掉就行了,你试一下,不行再问
新手天翼
#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
string s;
int n;
cin>>n;
cin>>s;
for(int i=0;i<s.size();i++)
{
a[s[i]]++;
}
for(int i='A';i<='Z';i++)
{
if(a[i]!=0)
cout<<char(i)<<a[i]<<endl;
} for(int i='a';i<='z';i++)
{
if(a[i]!=0)
{
cout<<char(i)<<a[i]<<endl;
}
}
return 0;
}
@龙舟
只会输出X2
Y1
Z1
a2
b2
c2
高级光能
我知道了
int n;
cin>>n;去掉
for(int i=0;i<s.size();i++)
{
a[s[i]]++;
}加上if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))
后面两个循环合在一起
for(int i=65;i<=122;i++)
里面
if(a[i]) { for(int j=1;j<=a[i];j++) cout<<(char)i; cout<<a[i]<<endl; }
分开输出,不然两个都会输出两遍
ac
新手天翼
#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
string s;
int n;
cin>>n;
cin>>s;
for(int i=0;i<s.size();i++)
{
a[s[i]]++;
}
for(int i='A';i<='Z';i++)
{
if(a[i]!=0)
for(int j=1;j<=a[i];j++)
cout<<char(i);
cout<<a[i]<<endl;
}
for(int i='a';i<='z';i++)
{
if(a[i]!=0)
for(int j=1;j<=a[i];j++)
{
cout<<char(i);
}
cout<<a[i]<<endl;
}
return 0;
}
还是不对
有正确答案
但是会有
0
0
0
0
0
0
0
.......
XX2
Y1
Z1
aa2
bb2
cc2
0
0
0
0
0
0
0
.........
新手天翼
@龙舟
我信你个鬼
3969 字符排序与计数
Wrong Answer:0分
高子健的测评结果:
测试点#1 测评结果 : Wrong Answer 时间 : 0ms 偷看一下数据
测试点#2 测评结果 : Wrong Answer 时间 : 0ms 偷看一下数据
测试点#3 测评结果 : Wrong Answer 时间 : 0ms 偷看一下数据
测试点#4 测评结果 : Wrong Answer 时间 : 0ms 偷看一下数据
测试点#5 测评结果 : Wrong Answer 时间 : 0ms 偷看一下数据
测试点#6 测评结果 : Time Limit Exceeded 时间 : 2000ms 偷看一下数据
测试点#7 测评结果 : Time Limit Exceeded 时间 : 1984ms 偷看一下数据
测试点#8 测评结果 : Time Limit Exceeded 时间 : 1992ms 偷看一下数据
测试点#9 测评结果 : Time Limit Exceeded 时间 : 2016ms 偷看一下数据
测试点#10 测评结果 : Time Limit Exceeded 时间 : 1996ms 偷看一下数据
我的提交(cpp):
#include<iostream>
#include<string>
using namespace std;
int a[10010];
int main()
{
string s;
int n;
cin>>s;
for(int i=0;i<s.size();i++)
{
a[s[i]]++;
if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))
for(int i=65;i<=122;i++)
if(a[i])
{
for(int j=1;j<=a[i];j++)
cout<<(char)i;
cout<<a[i]<<endl;
}
}
return 0;
}