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

     

     

     

     

     

     

  • 相关阅读:
    JAVA多线程编程设计模式:总结
    JAVA多线程编程设计模式:Half-sync/Half-async(半同步/半异步)模式
    JAVA多线程编程设计模式:Pipeline(流水线)模式
    尚学堂Spring视频教程(七):AOP XML
    尚学堂Spring视频教程(六):AOP Annotation
    JAVA基础知识:网络
    JAVA基础知识:IO
    JAVA基础知识:容器
    Java基础知识:代理
    尚学堂Spring视频教程(五):Spring AOP
  • 原文地址:https://www.cnblogs.com/2014acm/p/3887109.html
Copyright © 2011-2022 走看看