STL——括号匹配

Problem D: STL——括号匹配

Time Limit: 1 Sec Memory Limit: 128 MB

Description

给出一堆括号,看其是否匹配,例如 ()、()()、(()) 这样的括号就匹配,)(、)()) 而这样的括号就不匹配

Input

每一行代表一组测试样例,每组测试样例只包含'('和')',样例长度不超过100个字符

Output

如果所有的括号都匹配,那么输出YES,否则输出NO

Sample Input

()

)(

Sample Output

YES

NO

HINT

使用STL的stack容易实现。

include<bits/stdc++.h>

using namespace std;
stack<char> bracket;
int main()
{

char s[101];
while(scanf("%s",s) == 1)
{
    int num;
    num = strlen(s);
    while( bracket.size() )
        bracket.pop();
    int jump = 0;
    for(int i = 0; i < num; i++)
    {
        if(s[i] == '(')
        {
            bracket.push(s[i]);
        }
        else if(s[i] == ')')
        {
            if(bracket.empty())
            {
                cout<<"NO"<<endl;
                jump++;
                break;
                //return 0;
            }
            else
            {
                bracket.top();
                bracket.pop();
            }
        }
    }
    if(!bracket.empty())
    {
        cout<<"NO"<<endl;
    }
    else
    {
        if(jump == 0)
        {
            cout<<"YES"<<endl;
        }

    }

}

}
/*
())
)()()
()
((())
*/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • 人群,潮水一般涨落 生生死死,街道依旧喧嚣 于潦草的生年 逢着一种不期而遇 辗转,分离 不问世事的归期 于温柔的波...
    慕籽阅读 364评论 2 4
  • 不积跬步,无以致千里。
    我是大饼脸阅读 299评论 5 10
  • 没有缘由的,我失声了。 失去的,才会更加珍惜吧!不要等到失去的那一天后悔莫及。 和他人说话,说着说着就发不出声音来...
    默家少爷阅读 179评论 6 1