前言: {\color{Blue}前言:} 前言:本系列题使用的是“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度,如有需要可以直接查看对应专栏。发布个人的刷题笔记的同时,也是希望可以帮助到有需要的人,我会尽量的解释每一步代码,如有错误或者可以优化的地方还望各位CSDN的朋友可以指出来。更新速度预计是每天不定时更新三道,若当天没有更新后期将会补上。
题目
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT....
这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT
的顺序打印,直到所有字符都被输出。
输入格式
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。
输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。
注意:同一个人可以被查询多次,但只输出一次。
输入样例:
pcTclnGloRgLrtLhgljkLhGFauPewSKgt
输出样例:
GPLTGPLTGLTGLGLL
题解
data = input().upper()
dict1 = {'G': 0, 'P': 0, 'L': 0, 'T': 0}
for i in data:
if i in dict1:
dict1[i] += 1
while True:
if dict1['G'] == 0 and dict1['P'] == 0 and dict1['L'] == 0 and dict1['T'] == 0:
break
if dict1['G'] != 0:
print('G', end='')
dict1['G'] -= 1
if dict1['P'] != 0:
print('P', end='')
dict1['P'] -= 1
if dict1['L'] != 0:
print('L', end='')
dict1['L'] -= 1
if dict1['T'] != 0:
print('T', end='')
dict1['T'] -= 1