L1-023.输出GPLT
发布日期:2025-04-04 00:09:22 浏览次数:11 分类:精选文章

本文共 936 字,大约阅读时间需要 3 分钟。

给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新排序,按照“GPLTGPLT……”的顺序输出,并忽略其他字符。需要注意的是,这四个字符(不区分大小写)的数量可能并不完全相同。如果某种字符已经全部输出完成,剩下的字符仍然按照GPLT的顺序进行打印,直到所有字符都被排完。

输入格式:输入在一行中提供一个长度不超过10000的、仅由英文字母组成的非空字符串。

输出格式:输出在一行中按照题目要求排完后的字符串。题目保证输出结果非空。

输入样例:"pcTclnGloRgLrtLhgljkLhGFauPewSKgt"

输出样例:"GPLTGPLTGLTGLGLL"

代码实现

#include 
int main(){ char a[10005]; int i, g = 0, p = 0, l = 0, t = 0, len; gets(a); len = strlen(a); for (i = 0; i < len; ++i) { switch(a[i]) { case 'G': g++; break; case 'P': p++; break; case 'L': l++; break; case 'T': t++; break; } if (g && p && l && t) { printf("GPLT"); g--; p--; l--; t--; } }}

说明

这个代码实现了题目的要求。它通过遍历字符串中的每个字符,统计每种字符的出现次数。当四种字符的数量都达到至少一次时,就按顺序输出'GPLT',并同时减少各自的计数,所以每条'GPLT'的输出都对应每个字符至少减少一次数量。这样循环下去,直到所有字符都被处理完毕。

转载于:https://www.cnblogs.com/songCode/p/6836947.html

上一篇:L1-Day18
下一篇:L1 minimization

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2025年04月28日 19时28分53秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章