STL——括号匹配

作者: 停下浮躁的心 | 来源:发表于2017-04-22 19:13 被阅读38次

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

    }

}

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

相关文章

  • STL——括号匹配

    Problem D: STL——括号匹配 Time Limit: 1 Sec Memory Limit: 128...

  • 3. 一些算法问题

    1. 括号匹配问题 算法:括号匹配问题 - 简书 C程序括号匹配检查 - Jason ZHANG的博客 - CSD...

  • 栈、队列解决问题

    栈解决括号匹配问题 一个字符串中包含小括号、中括号、大括号,判断该字符串中的括号是否匹配 ()()[]{} 匹配...

  • Python爬虫 使用正则表达式匹配邮箱和括号中的内容

    匹配邮箱 匹配括号

  • 括号匹配

  • 括号匹配

    检查一段C语言代码的小括号( )、 中括号 [ ] 和大括号{ } 是否匹配。

  • 括号匹配

    这道题不同于LC921. 使括号有效的最少添加,这里是两种括号。 dp,f[i][j]表示从i位到j位的序列变为合...

  • 括号匹配

    题目:假设表达式中允许包含两种括号:圆括号与方括号,其嵌套顺序随意,即() 或者[([][])] 都是正确的。而这...

  • 盘点c语言学习中易犯得八大错误

    初学者常犯的错误是: 1:分号忘记 2:大括号不匹配,中括号不匹配,小括号不匹配(你应该先打括号,再填入内容:切记...

  • chap3-栈和队列

    括号匹配问题 // 括号匹配,遇到 '\0' 结束// 遇到花、中、圆左括号进栈,遇到花、中、圆右括号检查栈顶元素...

网友评论

    本文标题:STL——括号匹配

    本文链接:https://www.haomeiwen.com/subject/plnszttx.html