**

7-1 堆栈操作合法性 (15 分)

**
假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。

输入格式:

输入第一行给出两个正整数N和M,其中N是待测序列的个数,M(≤50)是堆栈的最大容量。随后N行,每行中给出一个仅由S和X构成的序列。序列保证不为空,且长度不超过100。

输出格式:

对每个序列,在一行中输出YES如果该序列是合法的堆栈操作序列,或NO如果不是。

输入样例:

4 10
SSSXXSXXSX
SSSXXSXXS
SSSSSSSSSSXSSXXXXXXXXXXX
SSSXXSXXX
//结尾无空行

输出样例:

YES
NO
NO
NO
//结尾无空行
#include <stdio.h>
#include <stdlib.h>
#include <string.h>void pd(){int N,M,i,j,k=0,a=0,flag=1;scanf("%d %d",&N,&M);char x;getchar();for(i=0;i<N;i++){//S=CreateStack(M);//创建栈while((x=getchar())!='\n'){//printf("%c ",x);if(x=='S'){//入栈a++;if(a>M){flag=0;//break;}//printf("%d ",a);}else if(x=='X'){//出栈a--;if(a<0){flag=0;//break;}//printf("%d ",a);}}if(a==0&&flag==1){//栈空且在入栈出栈时合法printf("YES\n");}else{//栈不空且在入栈出栈时合法printf("NO\n");}a=0;flag=1;}}int main(){pd();return 0;}

7-1 堆栈操作合法性 (15 分)相关推荐

  1. 7-11 堆栈操作合法性 (20 分)以及堆栈讲解(c语言实现)

    关于堆栈: 1.它是什么 2.它为什么会出现/它的出现解决了什么问题 3.我们要怎么使用它 堆和栈到底是什么 栈和堆(托管堆)都存在于进程的虚拟内存中. 栈(Stack) 是操作系统在建立某个进程时或 ...

  2. 7-113 堆栈操作合法性 (20 分)

    7-113 堆栈操作合法性 (20 分) 假设以S和X分别表示入栈和出栈操作.如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序 ...

  3. 习题3.9 堆栈操作合法性 (20分)

    习题3.9 堆栈操作合法性 假设以S和X分别表示入栈和出栈操作.如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈 ...

  4. 【PTA】7-1 堆栈操作合法性 (18 分)

    倒也不用真的用到栈. #include<iostream> using namespace std; int main() {int n,m;cin>>n>>m;w ...

  5. 7-1 堆栈操作合法性(20 分)

    7-1 堆栈操作合法性(20 分) 假设以S和X分别表示入栈和出栈操作.如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合 ...

  6. 堆栈操作合法性 C++

    温馨提示:本题为深大OJ原题,深大的同学请勿直接抄袭,以免出现多个代码相同以致评0分的情况,代码和思路仅供参考,希望大家能逐步成长. 目录 题目描述 思路分析 AC代码 题目描述 假设以S和X分别表示 ...

  7. 堆栈操作合法性 (C语言)

    题目详情 假设以S和X分别表示入栈和出栈操作.如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列.请编写程 ...

  8. 浙江大学远程教育学院计算机考试,浙江大学远程教育学院机试题 Windows操作题(共15分,若有做错请酌情 ....docx...

    浙江大学远程教育学院机试题 Windows操作题(共15分,若有做错请酌情 ....docx 第 PAGE 26 页 共 NUMPAGES 36 页 浙江大学远程教育学院机试题 Windows操作题( ...

  9. 7-4 递增序列 (15 分)

    7-4 递增序列 (15 分) 递增序列指的是,在序列中,对于任何两个相邻的数b[i]和bi+1,总有b[i]<b[i+1].现在,给你一个序列b[1],b[2],-b[n],和一个正整数d,每 ...

最新文章

  1. 一个从四秒到10毫秒,花了1年的算法问题?
  2. 新业态催生无人经济步入黄金发展期
  3. PHP Token(令牌)设计
  4. ajax传递数组,后台接收为null解决方法
  5. 评估系统C语言答案,用C语言评估语句
  6. python游戏房间_Python House冒险-如果已经进入一个房间,如何给出不同的输出
  7. lua循环,减少不必要的循环
  8. 用四级法测量计算机土壤电阻率,土壤电阻率的原理及测量土壤电阻率的测量方法...
  9. @Autowired与@Resource用法
  10. PADS2007_教程之PADS LAYOUT
  11. 『开发』小程序通过易班接口登陆并请求数据
  12. 教师资格证上传照片时显示“内部服务器错误”解决方法(亲测有效)
  13. python找不到文件怎么办_python中open找不到文件怎么解决
  14. JavaScript 正则匹配中英文姓名
  15. 有什么可以将word转换成pdf的免费转换工具?
  16. C++高阶 类型转换函数最透彻的一篇文章
  17. 最经典的黑客入门教程
  18. db2数据库表修改列为主键
  19. linux下多进程聊天室,从0实现基于Linux socket聊天室-多线程服务器模型-1
  20. Python去掉列表中的 ‘ | ’ |竖线分隔符

热门文章

  1. JBox2D学习 - 小球碰撞实例 .
  2. python鼠标碰撞_Python+opencv第5节鼠标响应事件,pythonopencv,第五节
  3. vue为基座微前端嵌入html,使用Vue CSR的微前端实现方案实践
  4. Leetcode 杂题
  5. 【PL/SQL】学习笔记 (1)一个简单的PL/SQL程序
  6. linux md5sum命令
  7. 内联元素,取消间隙和默认效果
  8. 软件工程-团队作业1
  9. Oracle-BPM安装详解
  10. MySQL_JDBC_数据库连接池