XDOJ1133 - 括号匹配

来源:互联网 发布:mac使用ps怎么合并图层 编辑:程序博客网 时间:2024/05/16 07:20
Description

  给你一个字符串,只含有‘(’和‘)’,然后你判断一下是否合法

Input
有多组数据,每组数据一行字符串s(|s|<=100),如题目所述
Output
如果合法则输出YES,否则输出NO。
Sample Input
(()())
)(
Sample Output
YES
NO
 解题思路:
这主要考察栈这种数据结构,这里我没有自己写,而是使用了STL中的deque
#include<iostream>#include<deque>#include<string>using namespace std;deque<char> brackets;int main(){    string str;    while(cin>>str)    {        string::size_type len = str.length();        string::size_type i;        while(!brackets.empty())            brackets.pop_back();        for(i=0;i<len;++i)        {            if(str[i]==')')            {                if(!brackets.empty())                    brackets.pop_back();                else                    break;            }            else if(str[i]=='(')                brackets.push_back(str[i]);        }        if(!brackets.empty())            cout<<"NO"<<endl;        else if(len==i)            cout<<"YES"<<endl;        else            cout<<"NO"<<endl;    }    return 0;}


0 0
原创粉丝点击