zoukankan      html  css  js  c++  java
  • PAT(B) 1043 输出PATest(Java)统计

    题目链接:1043 输出PATest (20 point(s))

    题目描述

    给定一个长度不超过 10​4​​ 的、仅由英文字母构成的字符串。请将字符重新调整顺序,按 PATestPATest… 这样的顺序输出,并忽略其它字符。当然,六种字符的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按 PATest 的顺序打印,直到所有字符都被输出。

    输入格式

    输入在一行中给出一个长度不超过 10​4​​ 的、仅由英文字母构成的非空字符串。

    输出格式

    在一行中按题目要求输出排序后的字符串。题目保证输出非空。

    输入样例

    redlesPayBestPATTopTeePHPereatitAPPT
    

    输出样例

    PATestPATestPTetPTePePee
    

    Java代码

    /*********************************************************************************
    Submit Time			Status		Score	Problem	Compiler		Run Time	User
    7/26/2019, 16:19:12	Accepted	20		1043	Java (openjdk)	96 ms		wowpH
    *********************************************************************************/
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.IOException;
    
    public class Main {
    	public static void main(String[] args) throws IOException {
    		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    		String s = br.readLine();
    		int numP = 0, numA = 0, numT = 0, nume = 0, nums = 0, numt = 0;
    		for (int i = 0; i < s.length(); ++i) {				// 统计PATest字符的个数
    			char ch = s.charAt(i);
    			if ('P' == ch) {
    				++numP;
    			} else if ('A' == ch) {
    				++numA;
    			} else if ('T' == ch) {
    				++numT;
    			} else if ('e' == ch) {
    				++nume;
    			} else if ('s' == ch) {
    				++nums;
    			} else if ('t' == ch) {
    				++numt;
    			}
    		}
    		boolean end = false;								// 结束标志
    		while (false == end) {
    			if (0 == numP && 0 == numA && 0 == numT) {
    				if (0 == nume && 0 == nums && 0 == numt) {
    					end = true;						// 所有字符个数均为0,设为结束
    				}
    			}
    			if ((numP--) > 0) {								// 字符'P'还未输出完
    				System.out.print('P');						// 输出字符'P'
    			}
    			if ((numA--) > 0) {
    				System.out.print('A');
    			}
    			if ((numT--) > 0) {
    				System.out.print('T');
    			}
    			if ((nume--) > 0) {
    				System.out.print('e');
    			}
    			if ((nums--) > 0) {
    				System.out.print('s');
    			}
    			if ((numt--) > 0) {
    				System.out.print('t');
    			}
    		}
    	}
    }
    
  • 相关阅读:
    手写Linq To Object
    4、IOC--内置Unity容器的使用
    WebApi 基于JWT实现Token签名认证
    软件架构师之路--观察者模式
    EF--封装三层架构IOC
    EF--主外键关系导航属性
    EF--EntityState相互转换
    证明task线程是来源于线程池的,线程重用
    3、IOC--手写Unity容器--链式依赖--第N层依赖注入
    2、IOC--手写Unity容器--第一层依赖注入
  • 原文地址:https://www.cnblogs.com/wowpH/p/11687450.html
Copyright © 2011-2022 走看看