首页 > 代码库 > 2、括弧匹配检验
2、括弧匹配检验
2、括弧匹配检验(check.cpp)
【问题描述】
假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或 ( ( ) ) )均为错误的匹配。
现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?
输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。
输入一个字符串:[([][])],输出:OK
【输入格式】
输入仅一行字符(字符个数小于255)
【输出格式】
匹配就输出 “OK” ,不匹配就输出“Wrong”。
【输入样例】check.in
[(])
【输出样例】check.out
Wrong
1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using namespace std; 5 char stack[1001]; 6 char a[1001]; 7 int top=1; 8 int main() 9 {10 gets(a);11 int l=strlen(a);12 for(int i=0;i<l;i++)13 {14 if(a[i]==‘(‘)15 {16 stack[top]=a[i];17 top++;18 }19 else if(a[i]==‘[‘)20 {21 stack[top]=a[i];22 top++;23 }24 else if(a[i]==‘)‘)25 {26 if(stack[top-1]==‘(‘)27 top--;28 else 29 {30 cout<<"Wrong";31 return 0;32 }33 }34 else if(a[i]==‘]‘)35 {36 if(stack[top-1]==‘[‘)37 top--;38 else 39 {40 cout<<"Wrong";41 return 0;42 }43 }44 45 }46 if(top==1)47 {48 cout<<"OK";49 }50 else51 {52 cout<<"Wrong";53 }54 return 0;55 }
2、括弧匹配检验
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。