Problem A: 判断操作是否合法(栈和队列)
来源:互联网 发布:ubuntu 不能挂载u盘 编辑:程序博客网 时间:2024/05/22 15:23
Problem A: 判断操作是否合法(栈和队列)
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 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 105typedef 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;}
0 0
- Problem A: 判断操作是否合法(栈和队列)
- Problem A: 判断操作是否合法(栈和队列)
- Problem A: 判断操作是否合法(栈和队列)
- YTU 3001: 判断操作是否合法(栈和队列)
- 判断操作是否合法A
- 判断操作是否合法(栈)
- 判断栈操作序列是否合法
- 3.5判断出栈和入栈操作序列是否合法
- 汉诺塔(三) 判断操作是否合法 + 栈(stack)数组
- Problem G: 函数---判断日期(年月日)是否合法
- Problem G: 函数---判断日期(年月日)是否合法
- 判断手机和Email是否合法
- Train Problem I(栈和队列)
- Train Problem I(栈和队列)
- 判断出栈序列是否合法
- 判断出栈序列是否合法
- 判断出栈序列是否合法
- 判断出栈顺序是否合法
- android高级---->Handler的原理
- HTTP 304状态分析
- filter_var() 验证邮箱、ip、url的格式 php
- 2017滴滴出行实习面试总结(测试岗,拿到offer)
- 论docker中 CMD 与 ENTRYPOINT 的区别
- Problem A: 判断操作是否合法(栈和队列)
- Error configuring application listener of class org.springframework.web.context.ContextLoaderListen
- wxpython学习笔记
- 大话设计模式—访问者模式
- 远程桌面mstsc情况下通过\\tsclient\盘符实现内容的拷贝
- monkey事件类命令1
- Leetcode:3. Longest Substring Without Repeating Characters
- 最长公共子序列问题 (LCS)
- 跟我一起学习MySQL技术内幕(第五版):(第一章学习日记7上)