NC15411. 牛哥重组字符串
描述
输入描述
输入一段字符串s(s的长度不超过100000)
注意多组输入
输出描述
输出只有一行排过序的数字,排过序的小写字母,排过序的大写字母;
示例1
输入:
14''.'}[abcABC
输出:
14abcABC
C++(clang++11) 解法, 执行用时: 19ms, 内存消耗: 472K, 提交时间: 2021-03-08 10:50:38
#include<bits/stdc++.h> using namespace std; int main(){ string s; while(cin>>s){ string s1,s2,s3; for(char c:s){ if(c>='0'&&c<='9')s1.push_back(c); else if(c>='a'&&c<='z')s2.push_back(c); else if(c>='A'&&c<='Z')s3.push_back(c); } sort(s1.begin(),s1.end()); sort(s2.begin(),s2.end()); sort(s3.begin(),s3.end()); cout<<s1<<s2<<s3<<endl; } return 0; }
C++(g++ 7.5.0) 解法, 执行用时: 9ms, 内存消耗: 448K, 提交时间: 2022-12-04 19:11:39
#include <bits/stdc++.h> using namespace std; int main(){ string a; while(cin>>a){ sort(a.begin(),a.end()); for(int i=0;i<a.size();i++) if(a[i]>='0'&&a[i]<='9') cout<<a[i]; for(int i=0;i<a.size();i++) if(a[i]>='a'&&a[i]<='z') cout<<a[i]; for(int i=0;i<a.size();i++) if(a[i]>='A'&&a[i]<='Z') cout<<a[i]; cout<<'\n'; } }