上题目先

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。


输入格式:

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


输出格式:

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


输入样例:

pcTclnGloRgLrtLhgljkLhGFauPewSKgt
 

输出样例:

GPLTGPLTGLTGLGLL


 代码长度限制
  16 KB

  时间限制
  150 ms

  内存限制
  64 MB
 
这是一道GPLT里面的经典题目,十分简单,我之前尝试不同方法做,但是都不能全部通过;
这种题目用c/c++的做一遍过,但是java不一样,语言和机制不一样会导致很多新手掉入一个
无底洞,不是开玩笑,你不注意还真的不知道原因,所以细节很重要

因为在java里面 Scnner 这个东西他不像 c语言的scanf,getchar等输入

他们不占内存,我也试过python,也不会报错,为什么呢,就是因为Scanner存在着很多问题,

java是使用Unicode(双字节)编码,Scanner也是读双字节,而在java里面

BufferedReader 输入流或者输出流就派上用场了,所以入坑Java尽量使用IO解决出入问题,这也能提升自己。

 1 import java.io.BufferedReader;
2 import java.io.InputStreamReader;
3 public class Main {
4 static int g,p,l,t;
5 public static void main(String args[]) throws Exception{
6 BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
7 String str=br.readLine();
8 for (int i=0;i<str.length();i++){
9 if (str.charAt(i)=='G'||str.charAt(i)=='g')g++;
10 if (str.charAt(i)=='P'||str.charAt(i)=='p')p++;
11 if (str.charAt(i)=='L'||str.charAt(i)=='l')l++;
12 if (str.charAt(i)=='T'||str.charAt(i)=='t')t++;
13 }
14 while (true){
15 if (g==0&&p==0&&l==0&&t==0)break;
16 if (g!=0){
17 System.out.print("G");
18 g--;
19 }
20 if (p!=0){
21 System.out.print("P");
22 p--;
23 }
24 if (l!=0){
25 System.out.print("L");
26 l--;
27 }
28 if (t!=0){
29 System.out.print("T");
30 t--;
31 }
32 }
33 }
34 }

L1-023 输出GPLT (20 分) java题解 GPLT天梯赛防坑技巧的更多相关文章

  1. L1-027 出租 (20 分) java题解

    下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破.其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对 ...

  2. 1043 输出PATest (20 分)

    题目:1043 输出PATest (20 分) 给定一个长度不超过 1 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然, ...

  3. PTA数据结构 习题2.8 输出全排列 (20分)

    习题2.8 输出全排列 (20分) 请编写程序输出前n个正整数的全排列(n<10),并通过9个测试用例(即n从1到9)观察n逐步增大时程序的运行时间. 输入格式: 输入给出正整数n(<10 ...

  4. 顶点的度 (20 分) Java解法

    顶点的度 顶点的图.给定一个有向图,输出各顶点的出度和入度. 输入格式: 输入文件中包含多个测试数据,每个测试数据描述了一个无权有向图.每个测试数据的第一行为两个正整数n 和m,1 ≤ n ≤ 100 ...

  5. 1002 写出这个数 (20 分) java解题

    读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式: 每个测试输入包含 1 个测试用例,即给出自然数 n 的值.这里保证 n 小于 10^100. 输出格式: 在一行内输 ...

  6. B1043 输出PATest (20 分)

    一.技术总结: 对于哈希字符处理方式,一般是用一个数组存储字符出现的次数,然后再考虑后续. 同时,在输出时,比如这题要输出指定几个字符,我们可以首先统计下这几个字符一共出现的次数sum,然后输出一个就 ...

  7. PAT Basic 1043 输出PATest (20 分)

    给定一个长度不超过 ​ ​​ 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符 ...

  8. 1043 输出PATest (20 分)C语言

    给定一个长度不超过 10^​4的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest- 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已经输 ...

  9. PAT (Basic Level) Practice (中文)1043 输出PATest (20 分)

    给定一个长度不超过 1 的.仅由英文字母构成的字符串.请将字符重新调整顺序,按 PATestPATest.... 这样的顺序输出,并忽略其它字符.当然,六种字符的个数不一定是一样多的,若某种字符已经输 ...

随机推荐

  1. Learning ROS: rostopic pub yaml demo

    官方Tutorials中例程的等效命令: rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist -- '{linear:[2.0, 0.0, 0.0 ...

  2. MySQL-SQL基础-子查询

    #子查询-某些情况下,当进行查询的时候,需要的条件是另外一个select语句的结果,这个时候就要用到子查询.用于子查询的关键字主要包括: in.not in.=.!=.exists.not exist ...

  3. MySQL大数据迁移备份

    MySQL迁移通常使用的有三种方法:   1.数据库直接导出,拷贝文件到新服务器,在新服务器上导入. 2.使用第三方迁移工具. 3.数据文件和库表结构文件直接拷贝到新服务器,挂载到同样配置的MySQL ...

  4. TCP头部格式和封装

    文章目录 12.3 TCP头部和封装 12.3.1 端口号 12.3.2 序列号 12.3.3 头部长度 12.3.4 相关控制位 12.3.5 窗口大小 12.3.6 校验和 12.3.7 选项字段 ...

  5. AOP快速入门

    一.概念 AOP面向切面编程,是函数式编程的延申,是对OOP的补充: 代理模式:拦截增强作用,增强功能: 1.java继承,纵向共性抽取, 2.横向切面AOP织入增强代码方式 二.原理是通过代理机制, ...

  6. Java日期时间API系列42-----一种高效的中文日期格式化和解析方法

    中文日期(2021年09月11日 和 二〇二一年九月十一日 )在生活中经常用到,2021年09月11日很好处理直接使用模板:yyyy年MM月dd日:二〇二一年九月十一日比较不好处理,需要每个数字进行转 ...

  7. Java实现发送邮件,图片,附件

    参照地址 1.JavaMail 介绍 JavaMail 是sun公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如前面 ...

  8. HCNP Routing&Switching之IS-IS路由聚合和认证

    前文我们了解了IS-IS路由渗透和开销相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15302382.html:今天我们来聊一聊IS-IS路由聚合和认 ...

  9. PHP方法参数的那点事儿

    在所有的编程语言中,方法或者函数,都可以传递一些参数进来进行业务逻辑的处理或者计算.这没什么可说的,但是在PHP中,方法的参数还有许多非常有意思的能力,下面我们就来说说这方面的内容. 引用参数 涉及到 ...

  10. 在PHP中灵活使用foreach+list处理多维数组

    先抛出问题,有时候我们接收到的参数是多维数组,我们需要将他们转成普通的数组,比如: $arr = [ [1, 2, [3, 4]], [5, 6, [7, 8]], ]; 我们需要的结果是元素1变成1 ...