您的位置:首页 > 其它

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

2018-03-28 21:56 281 查看

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

描述

题目描述:

四月一日快到了,Vayko想了个愚人的好办法——送礼物。嘿嘿,不要想的太好,这礼物可没那么简单,Vayko为了愚人,准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。
用()表示一个盒子,B表示礼物,Vayko想让你帮她算出愚人指数,即最少需要拆多少个盒子才能拿到礼物。

输入:

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

输出:

对于每组测试,请在一行里面输出愚人指数。
样例输入
((((B)()))())
(B)
样例输出
4
1


#include <bits/stdc++.h>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int main()
{
string s;
stack <char> 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<<num<<endl;
break;
}
}
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: