zoukankan      html  css  js  c++  java
  • 1354:括弧匹配检验

    【题目描述】

    假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())[([ ][ ])]等为正确的匹配,[( ])([ ]( ) ( ( ) ) )均为错误的匹配。

    现在的问题是,要求检验一个给定表达式中的括弧是否正确匹配?

    输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出 “OK” ,不匹配就输出“Wrong”。输入一个字符串:[([][])],输出:OK

    【输入】

    输入仅一行字符(字符个数小于255255)。

    【输出】

    匹配就输出 “OK” ,不匹配就输出“Wrong”。

    【输入样例】

    [(])

    【输出样例】

    Wrong

    #include <iostream>
    using namespace std;
    
    const int N = 255;
    char a[N] = {0};
    
    int main()
    {
        char ch = 0;
        int yuan = 0, zhong = 0;
        int top = 0, cnt = 0;
    
        while (ch != '@' && cnt < N) {
            ch = cin.get();
            switch (ch) {
                case '(':
                    a[top++] = ch;
                    yuan++;
                    break;
                case ')':
                    yuan--;
                    if (a[--top] != '(') {
                        ch = '@';
                    }
                    break;
                case '[':
                    a[top++] = ch;
                    zhong++;
                    break;
                case ']':
                    zhong--;
                    if (a[--top] != '[') {
                        ch = '@';
                    }
                    break;
                case '@':
                default:
                    ch = '@';
                    break;
            }
            cnt++;
        }
        if (zhong == 0 && yuan == 0) {
            cout << "OK";
        } else {
            cout << "Wrong";
        }
        return 0;
    }
    

      

  • 相关阅读:
    威尔逊定理 费马小定理 欧拉定理 扩展欧拉定理
    Prufer编码
    [USACO 08MAR]土地购买 Land Acquisition
    [NOIp2004]虫食算
    [POI2000]病毒

    [NOI导刊] [2010] [提高] 淘汰赛制
    开源的基于云开发的通讯录小程序
    党建答题小程序
    抽奖活动小程序按人头开奖技术分析
  • 原文地址:https://www.cnblogs.com/gaojs/p/15584374.html
Copyright © 2011-2022 走看看