酷代码 AI
菜单

题目描述 小 R 正在学习字符串处理。小 X 给了小 R 一个字符串 s s,其中 s s 仅包含小写英文字母及数字,且包含至少一个 1 ∼ 9 1∼9 中的数字。小 X 希望小 R 使用 s s 中的任意多个数字,按任意顺序拼成一个正整数。注意:小 R 可以选择 s s 中相同的数字,但每个数字只能使用一次。例如,若 s s 为 1 a 01 b 1a01b,则小 R 可以同时选择第 1 , 3 , 4 1,3,4 个字符,分别为 1 , 0 , 1 1,0,1,拼成正整数 101 101 或 110 110;但小 R 不能拼成正整数 111 111,因为 s s 仅包含两个数字 1 1。小 R 想知道,在他所有能拼成的正整数中,最大的是多少。你需要帮助小 R 求出他能拼成的正整数的最大值。 输入格式 输入的第一行包含一个字符串 s s,表示小 X 给小 R 的字符串。 输出格式 输出一行一个正整数,表示小 R 能拼成的正整数的最大值。c++

```cpp #include <iostream> #include <string> #include <vector> #include <algorithm> using namespace std; int main() { string s; // 读取输入的字符串 cin >> s; vector<int> digits; // 遍历字符串,提取其中的数字 for (char c : s) { if (c >= '1' && c <= '9') { digits.push_back(c - '0'); } } // 对提取的数字进行从大到小排序 sort(digits.begin(), digits.end(), greater<int>()); long long result = 0; // 将排序后的数字组合成最大的正整数 for (int digit : digits) { result = result * 10 + digit; } // 输出结果 cout << result << endl; return 0; } ``` [2025-11-02 19:22:17 | AI问答 | 211点数解答]

服务商
相关提问
发财导航,免费问AI
实用工具查看更多