
团体程序设计天梯赛-练习集 L1-023 输出GPLT (20分)
发布日期:2021-05-07 09:50:58
浏览次数:14
分类:精选文章
本文共 1056 字,大约阅读时间需要 3 分钟。
L1-023 输出GPLT (20分)
给定一个长度不超过10000的、仅由英文字母构成的字符串。请将字符重新调整顺序,按GPLTGPLT…这样的顺序输出,并忽略其它字符。当然,四种字符(不区分大小写)的个数不一定是一样多的,若某种字符已经输出完,则余下的字符仍按GPLT的顺序打印,直到所有字符都被输出。
输入格式:
输入在一行中给出一个长度不超过10000的、仅由英文字母构成的非空字符串。输出格式:
在一行中按题目要求输出排序后的字符串。题目保证输出非空。输入样例:
pcTclnGloRgLrtLhgljkLhGFauPewSKgt
输出样例:
GPLTGPLTGLTGLGLL
本题思路:设置四个栈,分别存放GPLT四种字符,最后根据四个栈的为空情况分别按序输出。
#include#include #include using namespace std;stack s1, s2, s3, s4;string str;int main(){ cin >> str; for(int i = 0; i < str.length(); i ++){ str[i] = toupper(str[i]);//转成大写 switch(str[i]){ case 'G': s1.push(str[i]); break; case 'P': s2.push(str[i]); break; case 'L': s3.push(str[i]); break; case 'T': s4.push(str[i]); break; } } while(!s1.empty()||!s2.empty()||!s3.empty()||!s4.empty()){ if(!s1.empty()){ cout << s1.top(); s1.pop(); } if(!s2.empty()){ cout << s2.top(); s2.pop(); } if(!s3.empty()){ cout << s3.top(); s3.pop(); } if(!s4.empty()){ cout << s4.top(); s4.pop(); } } return 0;}
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月14日 22时52分20秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Remove function
2019-03-05
在没实践机会的前提下,如何跨越级别
2019-03-05
从面试官角度告诉大家如何准备项目方面的描述
2019-03-05
架构师入门:搭建基本的Eureka架构(从项目里抽取)
2019-03-05
Java核心技术及面试指南 流程控制方面的面试题答案
2019-03-05
MongoDB 快速扫盲贴
2019-03-05
修复搜狗、360等浏览器不识别SameSite=None 引起的单点登录故障
2019-03-05
明天要早起,今天不博了。
2019-03-05
2017/08/21 工作日志
2019-03-05
EXTJS4.2——10.Tab+Iframe
2019-03-05
EXTJS4.2——3.1 添加文本框
2019-03-05
WEB基础——AJAX
2019-03-05
one + two = 3
2019-03-05
Kali Day01 --- arpspoof命令进行断网攻击(ARP欺骗)
2019-03-05
echart关系图平分节点删除时自动平衡问题
2019-03-05
【Coursera】Internet History 读书笔记
2019-03-05
《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
2019-03-05
Decision tree(决策树)算法初探
2019-03-05