题解:P14357 [CSP-J 2025] 拼数 / number(民间数据)
longwishend2 · · 题解
看到这道题,我就想到了string。string中可以存储字母和数字,在把每个数字存到一个数组里。 但要注意把string中存储的数字转为int时要减去"0"。然后在sort一下,从大到小逐个输出数字,就是最大的正整数了。
#include<bits/stdc++.h>
using namespace std;
int t[1000005];
int main()
{
string a;
cin>>a;
int jishu=0;
for(int i=0;i<a.size();i++)
{
if(a[i]>='0'&&a[i]<='9')
{
jishu++;
t[jishu]=a[i]-'0';//细节
}
}
sort(t,t+jishu+1);//cmp忘记了
for(int i=jishu;i>=1;i--)
{
cout<<t[i];
}
return 0;
}
这也是我考场上写的最简的代码了,感觉应该不能再优化了。当然桶排也是可以过的,只是会麻烦一丢丢 最爱stl