Problem A: 判断操作是否合法(栈和队列)

Problem A: 判断操作是否合法(栈和队列)

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 67  Solved: 22

Description

假设以I和O分别表示进栈和出栈操作,栈的初态和终态均为空,进栈和出栈的操作序列可表示为仅由I和O组成的序列。

顺序栈的定义为

typedef struct
{
ElemType data[SizeMax];
int top;
}SqStack;
编写一个算法,判断栈中的序列是否合法!若合法则返回1,否则返回0.
需编写的算法为:int judge(SqStack *s);

Input

输入为一个字符串,表示进栈出栈的操作序列,该序列存储在栈中。

Output

若操作序列合法则输出“Yes”,否则输出"No"。

Sample Input

IOIIOIOO

Sample Output

Yes

HINT

1、只需提交你所编写的算法


2、栈的初态和终态均为空

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define SizeMax 105
typedef char ElemType;
typedef struct
{ElemType data[SizeMax];int top;
}SqStack;
void InitStack(SqStack *&s)
{s=(SqStack*)malloc(sizeof(SqStack));s->top=-1;
}
bool Push(SqStack *&s,ElemType c)
{if(s->top==SizeMax-1)return false;s->top++;s->data[s->top]=c;return true;
}
int judge(SqStack *s)
{int i=-1;if(s->top==-1)return 1;while(s->top>=-1){if(s->data[s->top]=='I')i++;if(s->data[s->top]=='O')i--;if(i>-1)return 0;s->top--;}if(i!=-1)return 0;else return 1;
}
void DestroyStack(SqStack *&s)
{free(s);
}
int main()
{SqStack *s=NULL;InitStack(s);char c[SizeMax];gets(c);for(int i=0;i<(int)strlen(c);i++)Push(s,c[i]);if(judge(s))printf("Yes\n");else printf("No\n");DestroyStack(s);return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536207.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Problem G: 函数---判断日期(年月日)是否合法

Problem G: 函数---判断日期&#xff08;年月日&#xff09;是否合法 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 566 Solved: 240Description 编写函数isValid_date&#xff0c;函数声明如下: int isValid_date(int year,int month,int day); //判断日期&#xff08;年…

Problem H: 今年第几天?

Problem H: 今年第几天&#xff1f; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 723 Solved: 310Description 定义一个函数&#xff0c;其参数为年、月、日的值&#xff0c;返回这一天为该年的第几天。要求在main函数中输入年月日&#xff0c;然后调用这个函数求值&…

Problem I: 函数---判断某年某月某日是这一年中的第几天

Problem I: 函数---判断某年某月某日是这一年中的第几天 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 457 Solved: 194Description 在主程序(main)中输入某年某月某日&#xff0c;例如2012 9 18(年月日之间用空格隔开)&#xff0c; 调用函数dayth来得到某年某月某日是这…

Problem C: 括号匹配(栈和队列)

Problem C: 括号匹配&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 76 Solved: 18[Submit][Status][Web Board]Description 假设一个表达式中只允许包含三种括号&#xff1a;圆括号“(”和“)”&#xff0c;方括号“[”和“]”和花括号“…

Problem D: 栈的基本运算(栈和队列)

Problem D: 栈的基本运算&#xff08;栈和队列&#xff09; Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 43 Solved: 15[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序栈的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法…

Problem B: C语言习题 矩阵元素变换

Problem B: C语言习题 矩阵元素变换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 942 Solved: 558[Submit][Status][Web Board]Description 将一个nn(2<n<10,n为奇数)的矩阵中最大的元素放在中心&#xff0c;4个角分别放4个最小的元素&#xff08;按从左到右、从上…

Problem D: 删出多余的空格

Problem D: 删出多余的空格 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 667 Solved: 308[Submit][Status][Web Board]Description 小平在给弟弟检查英语作业时时&#xff0c;发现每个英语句子单词之间的空格个数不等&#xff0c;请你编程帮他把句子中多余的空格去掉&am…

Problem D: 顺序串的基本运算

Problem D: 顺序串的基本运算 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 73 Solved: 28[Submit][Status][Web Board]Description 编写一个程序&#xff0c;实现顺序串的各种基本运算&#xff0c;主函数已给出&#xff0c;请补充每一种方法。 1、建立串s"abcdefgh…

骨牌铺方格

骨牌铺方格 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 46495 Accepted Submission(s): 22470 Problem Description在2n的一个长方形方格中,用一个1 2的骨牌铺满方格,输入n ,输出铺放方案的总数.例如n3时…

递归思想完成n皇后问题

已经很长时间不敲代码了&#xff0c;感觉自己越来与颓废&#xff0c;所以现在又想做回一名苦逼的程序员&#xff0c;开启自己的代码之路。 我是根据视频敲的&#xff0c;没有题目&#xff0c;先看个四皇后问题吧。 所谓4皇后问题就是求解如何在44的棋盘上无冲突的摆放4个皇后棋…

POJ1163 数字三角形

1.题目信息&#xff08;http://poj.org/problem?id1163&#xff09; The TriangleTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 30397 Accepted: 17973 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5(Figure 1) Figure 1 shows a number tri…

virtualbox的USB识别

VirtualBox识别USB教程 作者&#xff1a;Vincent June 13, 2017 在Virtualbox虚拟机配置面板中打开USB设备选项&#xff0c;分别勾选上“启动USB控制器”“启用usb2.0控制器”选项&#xff0c;如果有错误去https://www.virtualbox.org/wiki/Downloads 下载相应版本的插件包&a…

ubuntu实现简单的划词工具

ubuntu实现简单的划词工具 由于ubuntu下面没有比较好用的划词翻译工具&#xff0c;而且本人比较喜欢有道词典&#xff0c;虽然ubuntu下有deepin版本的有道词典包&#xff0c;可是总是会有bug&#xff0c;卡死等等。所以自己参考别人写了一个小工具&#xff0c;涉及shell和pyth…

动态规划进阶题目之滑雪

Problem F: 动态规划进阶题目之滑雪 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 4 Solved: 3[Submit][Status][Web Board]Description Michael喜欢滑雪百这并不奇怪&#xff0c; 因为滑雪的确很刺激。可是为了获得速度&#xff0c;滑的区域必须向下倾斜&#xff0c;而且当…

修改win10我的文档下载等移动别处

win10移动我的文档&#xff0c;下载等到其他盘符办法 解决办法 1.选择我的文档&#xff0c;鼠标右键选择属性&#xff0c;在工具栏选择位置&#xff0c;然后选择想移动到哪里的盘符即可&#xff0c;如图&#xff1a;2.操作完后选择应用->确定&#xff0c;就这么简单。

神奇的口袋

2755:神奇的口袋查看 提交 统计 提示 提问总时间限制: 10000ms 内存限制: 65536kB描述有一个神奇的口袋&#xff0c;总的容积是40&#xff0c;用这个口袋可以变出一些物品&#xff0c;这些物品的总体积必须是40。John现在有n个想要得到的物品&#xff0c;每个物品的体积分别是a…

Ubuntu16.04LTS修改开机动画

ubuntu16.04LTS修改开机动画 ubuntu自带的开机动画实在是很不满美观&#xff0c;但是又不想重写&#xff0c;怎么办&#xff1f; 接下来交你们一招。 1.开机动画文件夹 Ubuntu14.04的开机动画在/usr/share/plymouth文件夹内 2.下载开机动画 两种方式&#xff1a; 从Ubun…

Qt的Xml操作QDomDocument

Qt的Xml操作QDomDocument Qt对于Xml的支持是很好的&#xff0c;一些我们需要的操作应有尽有&#xff0c;下面简单介绍一下怎样使用。主要有以下几点使用&#xff1a; 写xml到文件读xml添加节点到xml删除xml中某节点信息修改xml中某节点信息 准备工作 .pro加入QT xml需要in…

2815:城堡问题

2815:城堡问题 查看提交统计提示提问 总时间限制: 1000ms 内存限制: 65536kB描述1 2 3 4 5 6 7 #############################1 # | # | # | | ######---#####---#---#####---#2 # # | # # # # ##---#####---#####---#####---#3 # …

冒泡排序法函数

文章目录冒泡排序法的函数实现使用教程冒泡排序法的函数实现 话不多说上代码&#xff0c;拿去直接用。 // 冒泡排序函数 /* * brief sort * param array为数组名称&#xff0c;length为数组的长度&#xff0c;order为1或0,1代表从小到大排序 * 0代表从大到小排序…