1478: 2018蓝桥杯培训-STL应用专题-day 5 stack作业题1

1478: 2018蓝桥杯培训-STL应用专题-day 5 stack作业题1

描述

题目描述:

四月一日快到了,Vayko想了个愚人的好办法——送礼物。嘿嘿,不要想的太好,这礼物可没那么简单,Vayko为了愚人,准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。

用()表示一个盒子,B表示礼物,Vayko想让你帮她算出愚人指数,即最少需要拆多少个盒子才能拿到礼物。

输入:

本题目包含多组测试,请处理到文件结束。 每组测试包含一个长度不大于1000,只包含’(’,’)'和’B’三种字符的字符串,代表Vayko设计的礼物透视图。 你可以假设,每个透视图画的都是合法的。

输出:

对于每组测试,请在一行里面输出愚人指数。

样例输入
((((B)()))())
(B)
样例输出
4
1


#include 
#include 
#include 

using namespace std;

int main()
{
    string s;
    stack  st1;
    while(cin>>s)
    {
        int num = 0;
        for(int i = 0;i < s.length();i++)
        {
            //如果读入的s[i]为左括号,入栈,计数器++
            if(s[i]=='(')
            {
                st1.push(s[i]);
                num++;
            }
            /*
                如果读入的s[i]为右括号并且top指向的位置字符为左括号,
                则在原来栈的基础上,将顶部元素移除,计数器--
            */

            if(s[i]==')'&&st1.top()=='(')
            {
                st1.pop();
                num--;
            }if(s[i]=='B')
            {
                cout<

你可能感兴趣的:(c++,oj)