zoukankan      html  css  js  c++  java
  • rwkj 1378 C++:泛型编程stack(括号匹配)

    C++:泛型编程stack(括号匹配)

    时间限制(普通/Java):1000MS/3000MS            运行内存限制:65536KByte 总提交:176            测试通过:88

    描述

    假设表达式中包含一种括号:圆括号,其嵌套顺序随意,即(()())或(())等为正确的格式,)(或((())或())均为不正确的格式。检验括号是否匹配可以用堆栈来实现当遇到 ( 时进栈,遇到 ) 时出栈进行匹配检验,如果出现不匹配的情况立即结束,否则继续取下一个字符。如果没有遇到不匹配的情况,最后判断栈是否为空,栈为空,括号匹配,否则不匹配。

    输入

    包括多组数据。每组1行,为包含括号的表达式。

    输出

    如果是正确的格式,输出“Yes”,否则输出“No”

    样例输入

    (()())

    (())

    (()

    ())

    (

    )

    样例输出

    Yes

    Yes

    No

    No

    No

    No

     

     

    #include<iostream>
    #include <cmath>
    #include<stack>
    using namespace std;
    int main()
    {   char a[200];
        stack <char> st;   
        int i=0;
        while( cin>>a )
        {         
            for( i=0;a[i]!=''; i++)
            {
         if ( a[i]=='(' )    st.push( a[i]);
               if ( a[i]==')' ) 
              if ( !st.empty() && st.top()=='(' )      st.pop();
                                             else break; 
            }  

         
            if(  st.empty() && i==strlen(a) )    cout<<"Yes ";  
                                  else                       cout<<"No ";
                                 
            while ( !st.empty() )   st.pop();  
       }
        return 0;
    }

     

     

     

     

     

     

  • 相关阅读:
    mysql索引创建和使用细节(二)
    mysql索引创建和使用细节(一)
    PHP7.2.6安装sodium扩展
    passwd修改密码失败,报鉴定令牌操作错误
    centos6升级python版本至python3.5
    centos6升级gcc版本
    elasticsearch中文手册
    MySQL主从仅同步指定库
    适用于Centos6/7,vsftp自动安装脚本
    Redis内存模型
  • 原文地址:https://www.cnblogs.com/2014acm/p/3887109.html
Copyright © 2011-2022 走看看