题解 | #字符串排序#
字符串排序
https://www.nowcoder.com/practice/5190a1db6f4f4ddb92fd9c365c944584
import java.util.*;
// 硬解,暂时记录一下,后面想到了再优化思路
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextLine()) {
String s = in.nextLine();
System.out.println(sort(s));
}
}
public static String sort(String s) {
StringBuilder[] bs = new StringBuilder[26];
char[] cs = s.toCharArray();
for(int i = 0; i < 26; i++) bs[i] = new StringBuilder();
int n = s.length();
ArrayList<Integer> idxs = new ArrayList<Integer>();
StringBuilder b = new StringBuilder();
for(int i = 0; i < n; i++) {
if(!Character.isLetter(s.charAt(i))) continue;
idxs.add(i);
int idx = Character.toLowerCase(s.charAt(i)) - 'a';
bs[idx].append(s.charAt(i));
}
for(int i = 0; i < 26; i++) b.append(bs[i]);
for(int i = 0; i < idxs.size(); i++) cs[idxs.get(i)] = b.charAt(i);
return new String(cs);
}
}

查看34道真题和解析