https://pintia.cn/problem-sets/994805046380707840/problems/994805113036587008
解析
题目的意思是:给一个字符串,统计里面 GPLT(忽略大小写)的字符出现次数,然后就依次输出该字符多少次,若有字符用完了,则越过这个字符继续输出其它字符。
AC Code
import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StreamTokenizer st = new StreamTokenizer(br);
static PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out));
public static void main(String[] args) throws Exception {
char[] A = br.readLine().toUpperCase().trim().toCharArray();
int[] count = new int[4]; // 统计 GPLT 出现的次数
for(char x : A) {
if(x == 'G') count[0]++;
else if(x == 'P') count[1]++;
else if(x == 'L') count[2]++;
else if(x == 'T') count[3]++;
}
int i = 0;
while(count[0] != 0 || count[1] != 0 || count[2] != 0 || count[3] != 0) {
if(count[i] != 0) {
if(i == 0) out.print('G');
else if(i == 1) out.print('P');
else if(i == 2) out.print('L');
else if(i == 3) out.print('T');
count[i]--; // 用掉一次
}
i = (i + 1) % 4;
}
out.flush();
}
public static int nextInt() throws Exception {
st.nextToken();
return (int) st.nval;
}
public static String nextStr() throws Exception {
st.nextToken();
return st.sval;
}
}