博客
关于我
团体程序设计天梯赛-练习集 L1-023 输出GPLT (20分)
阅读量:340 次
发布时间:2019-03-04

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

为了重新排列字符串并按GPLT顺序输出,我们可以使用四个栈分别存储G、P、L、T四个字符。这样在处理每个字符时,可以依次按照GPTL顺序输出字符,确保满足题目的要求。

首先,我们初始化四个栈,每个栈分别用于存储对应的字符。然后遍历输入字符串,遇到每个字符时,将其转换为大写,并将其压入对应的栈中。最后,依次检查每个栈是否为空,非空则取出栈顶字符输出,直到所有栈都为空。

这种方法能够处理各种字符数量不一致的情况,确保输出顺序正确。代码实现时,可以使用C++的stack来实现每个栈,并在主循环中依次输出字符。

以下是实现代码:

#include 
#include
#include
#include
using namespace std;
int main() {
stack
s1, s2, s3, s4;
string str;
cin >> str;
for (char c : str) {
char upper_c = toupper(c);
switch (upper_c) {
case 'G': s1.push(upper_c); break;
case 'P': s2.push(upper_c); break;
case 'L': s3.push(upper_c); break;
case 'T': s4.push(upper_c); 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;
}

这个代码首先读取输入字符串,遍历每个字符并按顺序存储到四个栈中。然后,依次检查每个栈是否为空,非空则输出栈顶字符并弹出,直到所有栈为空。这样,输出的字符串将按照GPLT循环的顺序排列,满足题目的要求。

转载地址:http://tbfe.baihongyu.com/

你可能感兴趣的文章
NodeJs学习笔记002--npm常用命令详解
查看>>
nodejs学习笔记一——nodejs安装
查看>>
vue3+Element-plus icon图标无法显示的问题(已解决)
查看>>
NodeJS实现跨域的方法( 4种 )
查看>>
nodejs封装http请求
查看>>
nodejs常用组件
查看>>
nodejs开发公众号报错 40164,白名单配置找不到,竟然是这个原因
查看>>
Nodejs异步回调的处理方法总结
查看>>
NodeJS报错 Fatal error: ENOSPC: System limit for number of file watchers reached, watch ‘...path...‘
查看>>
nodejs支持ssi实现include shtml页面
查看>>
Nodejs教程09:实现一个带接口请求的简单服务器
查看>>
nodejs服务端实现post请求
查看>>
nodejs框架,原理,组件,核心,跟npm和vue的关系
查看>>
Nodejs概览: 思维导图、核心技术、应用场景
查看>>
nodejs模块——fs模块
查看>>
Nodejs模块、自定义模块、CommonJs的概念和使用
查看>>
nodejs生成多层目录和生成文件的通用方法
查看>>
nodejs端口被占用原因及解决方案
查看>>
Nodejs简介以及Windows上安装Nodejs
查看>>
nodejs系列之express
查看>>