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

    括弧匹配检验

    链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1354
    时间限制: 1000 ms         内存限制: 65536 KB

    【题目描述】

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

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

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

     

    【输入】

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

    【输出】

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

    【输入样例】

    [(])

    【输出样例】

    Wrong
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<stack>
    using namespace std;
    stack<char> S;
    int main()
    {
        string s;
        int flag =0;
        cin>>s;
        for(int i=0;i<s.size();i++)
        {        
            if(s[i]=='('||s[i]=='{'||s[i]=='[')S.push(s[i]);
            else{
                if(S.empty())flag=1;
                else {
                    char a=S.top();    
                    S.pop();        
                    if(a=='('&&s[i]==')');
                    else if(a=='{'&&s[i]=='}');
                    else if(a=='['&&s[i]==']');
                    else flag=1;
                } 
            
            }
        }
        if(flag||!S.empty())cout<<"Wrong"<<endl;
        else cout<<"OK"<<endl;
    }
  • 相关阅读:
    CLRS 10.28
    [转]教你如何查看各种浏览器的Cookies[IE cookies信息]
    红黑树c实现
    ubuntu下eclipse中键盘失灵
    putty中文乱码解决
    [ 转]关于linux下wireshark启动时Lua报错
    c/c++运算符优先级
    CLRS 10.45
    ubuntu 12.04 安装NS2
    SQL IsDate()
  • 原文地址:https://www.cnblogs.com/EdSheeran/p/7858372.html
Copyright © 2011-2022 走看看