用栈解决括号配对问题
来源:互联网 发布:阿基里斯悖论 知乎 编辑:程序博客网 时间:2024/06/14 19:19
<span style="font-size:18px;">#include <iostream> #include "stdlib.h"#include "string.h"using namespace std;char a[10000]; typedef struct node{ //声明节点char data;node* next;}node,*stack;stack init(char c){ //初始化栈node* l;l=(node *)malloc(sizeof(node));if(l==NULL){return NULL;}l->next=NULL;node* p;p=(node *)malloc(sizeof(node));p->data=c;p->next=NULL;l->next=p;return l;}stack pop(stack &l){ //出栈,获取元素用于后面(右)字符比较node* p;p=l->next;node* q;q=(node *)malloc(sizeof(node));q->data=p->data;l->next=l->next->next;return q;}void push(stack &l,char c){ //进栈,(左)字符node* p;p=l;node* q;q=(node *)malloc(sizeof(node));q->data=c;q->next=p->next;p->next=q;}int main(int argc, char* argv[]){stack l;stack r;int k,sum=0;cin>>k;if(k>0&&k<=100){do{a[10000];cin>>a;int t=strlen(a);if(t%2==1){cout<<"No"<<endl;}else{if(a[0]==']'||a[0]==')'){cout<<"No"<<endl;}else{int i=0;l=init(a[i]);for(i=1;i<t;i++){if(a[i]=='['||a[i]=='('){push(l,a[i]);}else{r=pop(l);if(a[i]==')'){if(r->data!='('){cout<<"No"<<endl; break;}}if(a[i]==']'){if(r->data!='['){cout<<"No"<<endl; break;}}}}if(i==t){cout<<"Yes"<<endl;}}}sum++; }while(sum<k);}return 0;}</span>
0 0
- 用栈解决括号配对问题
- 关于用栈解决ACM括号配对问题
- 括号配对问题 用数组解决
- 括号配对问题---栈
- 括号配对问题 栈
- 使用栈的技术,解决括号配对的问题
- 括号配对问题 栈实现
- 2 括号配对问题【栈】
- 括号配对问题----栈模拟
- 括号配对问题(栈)
- 括号配对问题(栈)
- NYOJ 2 括号配对问题(栈)
- 括号配对问题 栈的使用
- 括号配对问题 (栈模拟 简单题)
- 小白学ACM-括号配对问题(栈实现)
- nyoj2括号配对问题(数据结构---栈)
- 栈的经典问题:括号配对
- 初试栈问题ny2括号配对
- leetcode Next Permutation
- 《人工智能(智能系统指南,第二版)》读书笔记——6、第五章
- leetcode - Valid Parentheses
- 动漫推荐之一周的朋友
- 在ubuntu 14.04上解决gedit中文乱码的问题
- 用栈解决括号配对问题
- 【沟通的艺术】你能勾住你的听众么?
- cocos2d-x+lua开发模式下编辑器的选择
- JVM最多能创建多少个线程:unable to create new native thread
- C/C++的一些关于字符数组和指针的小总结
- UEditor的使用
- iOS开发教程:Storyboard全解析-第一部分
- 数据结构 第三章 栈和队列
- android 编译调用C代码