#include <bits/stdc++.h> using namespace std; int main() { string s,s1="",s2=""; cin>>s; for(int i=0;i<s.size();i++) { if(s[i]>='0'&&s[i]<='9') s1+=s[i]; else if(s[i]>='a'&&s[i]<='z') s2+=s[i]; } sort(s1.begin(),s1.end()); sort(s2.begin(),s2.end()); s1=s2+s1; cout<<s1<<endl; return 0; }
# 普通字典序是数字在字母前面 # 可以先排序,然后使用正则表达式,找到数字,并把数字放到字母后面 # 实测,使用正则表达式没有比较字符码值效率高 # 字符串没有sort()方法,sorted()排序过后得到的是字符list """ import re ls = sorted(input()) s = "".join(ls) p = re.compile(r"\d*") l = len(p.search(s).group()) print(s[l:]+s[:l]) """ ls = sorted(input()) t = 0 for i in range(len(ls)): if ord(ls[i]) > ord('9'): t = i break print("".join(ls[t:]+ls[:t]))
#include <stdio.h>
#include <string.h>
#define maxlen 100010
#define maxans 37
char str[maxlen];
int ch_ans[maxans];
int main(){
int i,j,len;
char tmp;
scanf("%s",str);
len=strlen(str);
memset(ch_ans,0,sizeof(ch_ans));
for(i=0;i<len;i++){
if(str[i]>='a' && str[i]<='z')
ch_ans[str[i]-'a'+1]++;
else if(str[i]>='0' && str[i]<='9')
ch_ans[str[i]-'0'+27]++;
}
for(i=1;i<maxans;i++){
while(ch_ans[i]!=0){
if(i>=1 && i<=26)
printf("%c",'a'+i-1);
else
printf("%c",'0'+i-27);
ch_ans[i]--;
}
}
printf("\n");
return 0;
}
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Character[] in = sc.nextLine().chars().mapToObj(c -> (char)c).toArray(Character[]::new); Arrays.sort(in, new Comparator<Character>() { @Override public int compare(Character o1, Character o2) { if (Character.isDigit(o1) && Character.isAlphabetic(o2)) { return 1; } else if (Character.isDigit(o2) && Character.isAlphabetic(o1)) { return -1; } return Character.compare(o1, o2); } }); StringBuilder sb = new StringBuilder(); for (char c : in) { sb.append(c); } System.out.println(sb.toString()); return; } }
#include <bits/stdc++.h> using namespace std; int main() { string str; while(cin>>str) { sort(str.begin(),str.end(),[](const char& a,const char &b){ if(a>='a'&&a<='z'&&b>='0'&&b<='9') return true; else if(a>='0'&&a<='9'&&b>='a'&&b<='z') return false; else return a<b; }); cout<<str<<endl; } }
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * 计数排序 * @author wylu */ public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); char[] s = br.readLine().toCharArray(); int[] letters = new int[26], digits = new int[10]; for (char ch : s) { if (ch >= '0' && ch <= '9') digits[ch - '0']++; else letters[ch - 'a']++; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < letters.length; i++) { for (int j = 0; j < letters[i]; j++) sb.append((char) (i + 'a')); } for (int i = 0; i < digits.length; i++) { for (int j = 0; j < digits[i]; j++) sb.append((char) (i + '0')); } System.out.println(sb); } }
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { String str = sc.next(); System.out.println(helper(str)); } } public static String helper(String str){ StringBuilder sb1=new StringBuilder(); StringBuilder sb2=new StringBuilder(); for(int i=0;i<str.length();i++){ if(str.charAt(i)>='a'&&str.charAt(i)<='z'){ sb1.append(str.charAt(i)); }else if(str.charAt(i)>='0'&&str.charAt(i)<='9'){ sb2.append(str.charAt(i)); } } char[]cs1=sb1.toString().toCharArray(); char[]cs2=sb2.toString().toCharArray(); Arrays.sort(cs1); Arrays.sort(cs2); StringBuilder sb=new StringBuilder(); for(char c:cs1)sb.append(c); for(char c:cs2)sb.append(c); return sb.toString(); } }
#include <bits/stdc++.h> using namespace std; int main() { string s, si, sc; cin >> s; for (int i = 0; i < s.size(); i++) { if (s[i] >= '0'&&s[i] <= '9')si += s[i]; else sc += s[i]; } sort(si.begin(), si.end()); sort(sc.begin(), sc.end()); s = ""; s += sc; s += si; cout << s; }
#include<iostream> #include<string> #include<algorithm> using namespace std; int main() { string Cstr; cin>>Cstr; sort(Cstr.begin(),Cstr.end()); string sample="abcdefghijklmnopqrstuvwxyz"; auto flag=Cstr.find_first_of(sample); cout<<Cstr.substr(flag)<<Cstr.substr(0,flag); }
#include<iostream> #include<algorithm> #include<string.h> using namespace std; int main() { char str[1000000]; int len=0; while(cin>>str) { len=strlen(str); int m=0; sort(str,str+len); for(int i=0;i<len;i++) { if(str[i]>='0'&&str[i]<='9') { m++; continue; } else { cout<<str[i]; continue; } } for(int i=0;i<m;i++) cout<<str[i]; } }
using System; namespace myNamespace { clas***yClass { static void Main(string[] args) { string s=Console.ReadLine(); string zm=null; string sz=null; for(int i=0;i<s.Length;i++) { if(s[i]<='9'&&s[i]>='0') { sz+=s[i]; }else { zm+=s[i]; } } char[] zm1=zm.ToCharArray(); char[] sz1=sz.ToCharArray(); for(int i=0;i<sz1.Length;i++) { for(int j=i;j<sz1.Length;j++) { if(sz1[i]>sz1[j]) { char c=sz1[i]; sz1[i]= sz1[j]; sz1[j]=c; } } } for(int i=0;i<zm1.Length;i++) { for(int j=i;j<zm1.Length;j++) { if(zm1[i]>zm1[j]) { char c=zm1[i]; zm1[i]= zm1[j]; zm1[j]=c; } } } string zm2=new string(zm1); string sz2=new string(sz1); Console.WriteLine(zm2+sz2); } } }
#include<stdio.h> int main() { int letter[26] = {0}; int num[10] = {0}; int i,j; char c; do { c = getchar(); if(c>='0' && c<='9') { num[c-48]++; } else if(c>='a' && c<='z') { letter[c-97]++; } }while(c != '\n'); for(i=0; i<26; i++) { for(j=0; j<letter[i]; j++) { printf("%c",i+'a'); } } for(i=0; i<10; i++) { for(j=0; j<num[i]; j++) { printf("%c",i+'0'); } } return 0; }