1
已解决
何冯成
中级光能
中级光能
#include<iostream>
#include<string>
using namespace std;
string s;
int a[150];
int main(){
cin>>s;
for(int i=0;i<=s.size()-1;i++){
a[s[i]]++;
}
for(int i=0;i<=s.size()-1;i++){
for(int j=1;j<=a[s[i]];j++)
cout<<s[i];
}
return 0;
}
@徐子玄 @李汉魁 @陆麟瑞 @酷町喵~o( =∩ω∩= )o~
找错
何冯成在2020-07-16 17:39:12追加了内容
AC了
问一下4383
40分代码
#include<iostream>
using namespace std;
int a[1100],b[105],maxn;
int main(){
int n,t,cnt=0;
cin>>n;
for(int i=1;i<=n;i++){
cin>>t;
b[t]++;
}
for(int i=105;i>=0;i--){
if(cnt<2&&b[i]!=0){
cnt++;
cout<<i<<' ';
}
}
return 0;
}
何冯成在2020-07-16 17:39:30追加了内容
@李瑞曦
0
已采纳
李瑞曦
高级天翼
高级天翼
需要用双重循环,核心:
for(int i=104;i>=1;i--)
{
for(int j=1;j<=a[i];j++){
if(cnt>=2)
{
break;
}
cnt++;
cout<<i<<" ";
}
if(cnt==2)
{
break;
}
}
0
徐子玄
初级光能
初级光能
核心:
for(int i=1;i<=n;i++) {//n是运动员总数
cin>>a[i];//每个运动员成绩
b[a[i]]++;//桶计数
}
for(int i=104;i>=1;i--)//从分数大到小遍历,前两个便是冠军和亚军
if(b[i]!=0) {//如果有b[i]这个成绩
cout<<i;
ans++;
if(ans==2)//如果已经找到冠军和亚军
return 0;//提前结束代码,让程序更快!
}
0
李瑞曦
高级天翼
高级天翼
你的代码太复杂,直接内部排序就行了,
把
for(int i=0;i<=s.size()-1;i++){
a[s[i]]++;
}
for(int i=0;i<=s.size()-1;i++){
for(int j=1;j<=a[s[i]];j++)
cout<<s[i];
}
改成
sort(s.begin(),s.end());
cout<<s;
李瑞曦在2020-07-16 17:27:51追加了内容
别忘记头文件:algorithm
0
李瑞曦
高级天翼
高级天翼
核心:
for(int i=0;i<=a.size()-1;i++)
{
b[a[i]]++;
}
for(int i=65;i<=122;i++)
{
for(int j=1;j<=b[i];j++)
{
cout<<(char)i;
}
}
0
0
0