//> 字符串拆成两个部分保存,C++贴 class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param text_source string字符串 原始输入 * @return string字符串 */ string char_and_num_return(string text_source) { // write code here //> 保存字符 vector<string> strs; //> 保存数字 vector<long long> nums; string str = ""; int flag = 0; //> 加一个空格,把所有遍历完 text_source += ' '; for (auto& ch : text_source) { if (ch == ' ') { //> 1 : 数字 //> 2 : 字符 if (flag == 1) { nums.emplace_back(stoll(str)); } else if (flag == 2) { strs.emplace_back(str); } flag = 0; str.clear(); } else if (ch >= '0' && ch <= '9') { flag = 1; str += ch; } else { flag = 2; str += ch; } } string ans = ""; //> 数字排序 sort(nums.begin(), nums.end()); if (!strs.empty()) { for (int i = 0; i < strs.size(); ++i) { ans += strs[i]; //> 最后一个空格 if (i != strs.size()- 1) ans += ' '; } } if (!nums.empty()) { if (!ans.empty()) ans += ' '; for (int i = 0; i < nums.size(); ++i) { ans += to_string(nums[i]); //> 最后一个空格 if (i != nums.size() - 1) ans += ' '; } } return ans; } };