zoukankan      html  css  js  c++  java
  • 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     else
    51     {
    52         cout<<"Wrong";
    53     }
    54     return 0;
    55 }
  • 相关阅读:
    LIB和 DLL区别
    C++ STL总结
    浅谈static和extern关系
    死锁及处理
    函数模板与模板函数
    Linux无法启动httpd_正在启动httpd
    httpd不允许远程连接问题
    虚拟机UUIDexist_更改UUID
    MySQL远程连接丢失问题
    Apache服务端允许跨域
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/6628576.html
Copyright © 2011-2022 走看看