博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基础数据结构-堆栈-拓展:行编辑
阅读量:6070 次
发布时间:2019-06-20

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

使用C++的STL堆栈对象,编写程序实现行编辑功能。行编辑功能是:当输入#字符,则执行退格操作;如果无字符可退就不操作,不会报错

本程序默认不会显示#字符,所以连续输入多个#表示连续执行多次退格操作
每输入一行字符打回车则表示字符串结束
注意:必须使用堆栈实现,而且结果必须是正序输出

输入

第一行输入一个整数t,表示有t行字符串要输入
第二行起输入一行字符串,共输入t行

输出

每行输出最终处理后的结果,如果一行输入的字符串经过处理后没有字符输出,则直接输出NULL

样例输入

4
chinaa#
sb#zb#u
##shen###zhen###
chi##a#####
样例输出
china
szu
sz
NULL

 

#include
#include
#include
using namespace std;int main(){ string str; int len,freq; cin>> freq; for(int i=1;i<=freq;i++) { int n=0; cin>> str; len = str.length(); stack
s,t; for(int m=1;m<=len;m++) { if(str[m-1]=='#') { if(!s.empty()) { s.pop(); --n; } } else { s.push(str[m-1]); ++n; } } for(int j=1;j<=n;j++) //调换成正序 { t.push(s.top()); s.pop(); } if(t.empty()) { cout<< "NULL" <

 

转载于:https://www.cnblogs.com/nathaneko/p/6491403.html

你可能感兴趣的文章
python-45: opener 的使用
查看>>
cad图纸转换完成的pdf格式模糊应该如何操作?
查看>>
Struts2与Struts1区别
查看>>
网站内容禁止复制解决办法
查看>>
Qt多线程
查看>>
我的友情链接
查看>>
Ubuntu12.04 编译android源代码及生成模拟器经历分享
查看>>
KVM网络桥接设置方法
查看>>
Puppet学习手册:Puppet Yum安装
查看>>
我的友情链接
查看>>
ansible学习记录
查看>>
网思科技校园网计费解决方案
查看>>
我的友情链接
查看>>
携程 Apollo分布式部署
查看>>
2017 Hackatari Codeathon B. 2Trees(深搜)(想法)
查看>>
单词统计
查看>>
输入一个数字计算圆的面积
查看>>
在Delphi中隐藏程序进程
查看>>
AngularJS PhoneCat代码分析
查看>>
MEF元数据应用说明
查看>>