给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
pcTclnGloRgLrtLhgljkLhGFauPewSKgt
GPLTGPLTGLTGLGLL
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int[] count = new int[4]; // 用于存储G, P, L, T的数量
char[] chars = str.toUpperCase().toCharArray(); // 转换为大写,便于处理
// 统计G, P, L, T的数量
for (char c : chars) {
switch (c) {
case 'G': count[0]++; break;
case 'P': count[1]++; break;
case 'L': count[2]++; break;
case 'T': count[3]++; break;
}
}
StringBuilder sb = new StringBuilder();
while (count[0] > 0 || count[1] > 0 || count[2] > 0 || count[3] > 0) {
if (count[0]-- > 0) {
sb.append('G');
}
if (count[1]-- > 0) {
sb.append('P');
}
if (count[2]-- > 0) {
sb.append('L');
}
if (count[3]-- > 0) {
sb.append('T');
}
}
System.out.println(sb);
}
}