题目描述
给定一个长度为 n 的由小写字母构成的字符串。
请你按照 a∼z 的顺序,对字符串内的字符进行重新排序,并输出重新排序后的字符串。
输入格式
第一行包含整数 T ,表示共有 T 组测试数据。
每组数据第一行包含整数 n 。
第二行包含一个长度为 n 的由小写字母构成的字符串。
输出格式
每组数据输出占一行,输出重新排序后的字符串。
数据范围
前 3个测试点满足 1≤T≤5,1≤n≤10。
所有测试点满足 1≤T≤100,1≤n≤200。
输入样例:
2
3
cba
3
acb
输出样例:
abc
abc
解题思路
先将字符转化为0-26对应的数字,再去维护一个数组sum,统计出不同类型的字符的个数,最后输出打印数字所对应的字符。
考点
字符转数字
char op = str.charAt(i);
数字转字符
(char)('a' + i);
ACcode
import java.util.*;
public class Main{
public static void main(String []args){
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();//T组测试数据
while(T-- > 0){
int n = sc.nextInt();
String str = sc.next();
int []sum = new int[26];
for(int i = 0; i < n; i++){
char ch = str.charAt(i);//获取每组测试数据的字符
sum[ch - 'a']++;//每一种类型的字符共有多少个
}
for(int i = 0; i < 26; i++){//26个字母
for(int j = 0; j < sum[i]; j++){//打印每种类型的字符
System.out.print((char)('a' + i));
}
}
System.out.println();
}
}
}