• 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;
    }

     

     

     

     

     

     

  • 相关阅读:
    [资料]PHP中的__autoload
    [转]php 5.3新增的闭包语法介绍function() use() {}
    [资料]PHP中的ReflectionClass
    [资料]PHP中的命名空间
    Mysql Event
    PHP转换成对像
    [转]Win7自带便签怎么恢复内容
    [转]Windows7便笺妙用
    [转]ASP.NET下MVC1.0>2.0>3.0>4.0
    PHP类动态属性问题
  • 原文地址:https://www.cnblogs.com/2014acm/p/3887109.html
Copyright © 2020-2023  润新知