判断操作是否合法A
来源:互联网 发布:php 跨域 header 编辑:程序博客网 时间:2024/05/23 02:03
Problem A: 判断操作是否合法(栈和队列)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 44 Solved: 14
[Submit][Status][Web Board]
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 105typedef char ElemType;typedef struct{ ElemType data[SizeMax]; int top;}SqStack;int judge(SqStack *s){int i,j=-1;for(i=0;i<=s->top;i++){if(s->data[i]=='I')j++;if(s->data[i]=='O')j--;if(j<-1||j>104)break;}if(j==-1&&i==s->top+1)return 1;elsereturn 0;}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;}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;}
提交部分
int judge(SqStack *s){int i,j=-1;for(i=0;i<=s->top;i++){if(s->data[i]=='I')j++;if(s->data[i]=='O')j--;if(j<-1||j>104)break;}if(j==-1&&i==s->top+1)return 1;elsereturn 0;}
0 0
- 判断操作是否合法A
- Problem A: 判断操作是否合法(栈和队列)
- Problem A: 判断操作是否合法(栈和队列)
- Problem A: 判断操作是否合法(栈和队列)
- 判断操作是否合法(栈)
- 判断栈操作序列是否合法
- 数据结构实验题--判断入栈出栈操作序列是否合法
- 汉诺塔(三) 判断操作是否合法 + 栈(stack)数组
- YTU 3001: 判断操作是否合法(栈和队列)
- 3.5判断出栈和入栈操作序列是否合法
- javascript判断日期是否合法
- c#判断身份证是否合法
- 判断十六进制数据是否合法
- 判断文件名是否合法
- 判断一个字符串是否合法
- 代码判断邮箱是否合法
- 代码判断邮箱是否合法 .
- 代码判断邮箱是否合法
- JDK8——使用lambda编程
- 多样式ProgressBar 和ProgressDialog
- 送货
- linux系统性能优化及瓶颈分析
- Cache和Buffer的区别
- 判断操作是否合法A
- 使用token防止表单重复提交
- CCF认证-出现次数最多的数
- Android:inputType常用取值
- Java中Dao模式中两种Dao的数据库操作(BaseDao的写法)
- 在CentOS release 6.4 下mysql的rpm方式的安装
- Linux编程-线程优先级的设定
- CreateWindow函数详解
- CentOS6.5安装pymvpa2