题解 | #图片整理#
图片整理
http://www.nowcoder.com/practice/2de4127fda5e46858aa85d254af43941
描述
Lily上课时使用字母数字图片教小朋友们学习英语单词,每次都需要把这些图片按照大小(ASCII码值从小到大)排列收好。请大家给Lily帮忙,通过C语言解决。
本题含有多组样例输入。
输入描述:
Lily使用的图片包括"A"到"Z"、"a"到"z"、"0"到"9"。输入字母或数字个数不超过1024。
输出描述:
Lily的所有图片按照从小到大的顺序输出
示例1
输入:
Ihave1nose2hands10fingers
复制
输出:
0112Iaadeeefghhinnnorsssv
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int[] arr = new int[128];
String str = sc.nextLine();
for(int i=0;i<str.length();i++){
int k = str.charAt(i);//将当前下标的字母 转化成ascii值
arr[k]++;//对应数组的下标的值++,表示这个字母出现的次数
}
for(int j=48;j<arr.length;j++){
//j=48,表示ascii值中0的取值 ,村换
if(arr[j]!=0){
//从出现过的次数的值打印
for(int b = 0;b<arr[j];b++){
System.out.print((char)j);//出现几次打印几次
}
}
}
System.out.println();
}
}
} 第2种解法更简单
while(sc.hasNext()){
String str = sc.nextLine();
char[] arr = str.toCharArray();
Arrays.sort(arr);//自动从小到大排序
for(char c : arr){
System.out.print(c);
}
System.out.println();
}
联想公司福利 1477人发布
