PTA L1-023输出GPLT

张开发
2026/4/3 21:24:31 15 分钟阅读
PTA L1-023输出GPLT
有了没见过的python函数记录一下。给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序按GPLTGPLT....这样的顺序输出并忽略其它字符。当然四种字符不区分大小写的个数不一定是一样多的若某种字符已经输出完则余下的字符仍按GPLT的顺序打印直到所有字符都被输出。输入格式输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。输出格式在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例pcTclnGloRgLrtLhgljkLhGFauPewSKgt输出样例GPLTGPLTGLTGLGLL# 读取输入字符串 s input().strip() # 统计四个字母的出现次数不区分大小写 count {G: 0, P: 0, L: 0, T: 0} for ch in s: upper_ch ch.upper() if upper_ch in count: count[upper_ch] 1 # 按顺序循环输出 order [G, P, L, T] result [] while any(count.values()): for ch in order: if count[ch] 0: result.append(ch) count[ch] - 1 # 输出结果 print(.join(result))upper(),lower()是个小印象一个转为全大写一个转为全小写。整个模拟过程只是计算每个字符串的数量通过字典哈希表加遍历循环实现注意所有字符串不只有gplt然后通过遍历order每次如果有再加再把数量减一直到所有的字母均为0能让结果按照顺序来加很简单的想法没想到。学一下这个while anycount.values()any()函数接收一个可迭代对象如果其中至少有一个元素为真非零就返回True如果所有元素都为False即都为零则返回False。

更多文章