T1题解
2025-12-29 20:44:12
发布于:福建
3阅读
0回复
0点赞
题意
给定一个包含小写字母和数字的字符串 ,要求从小写字母及数字的字符串 中选出任意多个数字 ,并按任意顺序将它们拼接成一个正整数。每个数字只能使用一次。求出所有能拼成的正整数中的最大值。
解析:
以发现,最终数字的最高位越大,这个数就越大,因而只需挑出字符串中的所有数字,再按大小降序排序即可。
答案:
#include <bits/stdc++.h>
using namespace std;
string s , ans;
int main( ) {
//freopen("number.in", "r", stdin);
//freopen("number.out", "w", stdout);
cin >> s;
for (int i = 0; i < s.length(); i++) {// 选出 s 中的所有数字,加入答案字符串
if (s[i] >= '0' && s[i] <= '9')
ans += s[i];
}
sort(ans.begin() , ans.end()); // 升序排序
reverse(ans.begin() , ans.end());// 反转整个字符串(降序)
cout << ans << endl;
//fclose(stdin);
//fclose(stdout);
return 0;
}
这里空空如也


有帮助,赞一个