PAT1043 輸出PATest(java實現)

TNTZS666發表於2019-01-19

題目描述:

給定一個長度不超過10^​4的、僅由英文字母構成的字串。請將字元重新調整順序,按 PATestPATest.... 這樣的順序輸出,並忽略其它字元。當然,六種字元的個數不一定是一樣多的,若某種字元已經輸出完,則餘下的字元仍按 PATest 的順序列印,直到所有字元都被輸出。

  • 輸入格式
    輸入在一行中給出一個長度不超過10^4的、僅由英文字母構成的非空字串。

  • 輸出格式
    在一行中按題目要求輸出排序後的字串。題目保證輸出非空。


解題思路:這道題我先把輸入的字串中不是PATest的字母用正規表示式去掉,然後之後就是幾個if判斷的事情了。


程式:

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
public static void main(String[] args) throws Exception {
	BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
	String in = bf.readLine();
	in = in.replaceAll("[^PATest]","");
	char[] c = in.toCharArray();
	//System.out.println(in);
	int Pnum=0;
	int Anum=0;
	int Tnum=0;
	int e=0;
	int s=0;
	int t=0;
	for (int i = 0; i < in.length(); i++) {
		if (c[i]=='P') {
			Pnum++;
		}
		if (c[i]=='A') {
			Anum++;
		}
		if (c[i]=='T') {
			Tnum++;
		}
		if (c[i]=='e') {
			e++;
		}
		if (c[i]=='s') {
			s++;
		}
		if (c[i]=='t') {
			t++;
		}
}
	
		while (Pnum>0||Anum>0||Tnum>0||e>0||s>0||t>0) {
			if (Pnum!=0) {
				System.out.print("P");
				Pnum--;
			}
			if (Anum!=0) {
				System.out.print("A");
				Anum--;
			}
			if (Tnum!=0) {
				System.out.print("T");
				Tnum--;
			}
			if (e!=0) {
				System.out.print("e");
				e--;
			}
			if (s!=0) {
				System.out.print("s");
				s--;
			}
			if (t!=0) {
				System.out.print("t");
				t--;
			}
		}
	}
}

相關文章