
题目:
曾经有一片空地(全部是字符‘.’构成),例如:
................
然后,有人将一些小球(一对小括号“()”表示一个小球,小球不会重叠)丢到空地上,例如:
.()...()().().()
最终,空地上长出了一些草(用字符‘|’表示),遮盖了一些小球,例如在上面的基础上变成了这样:
.(|||.()(||||||)
给出一个字符串 S,表示草地最终的状态,求草地上至少有多少个小球。
输入格式一个字符串 S,长度不超过 50。只可能包括 4 种类型的字符:‘.’、‘(’、‘)’、‘|’
输出格式一个整数,表示小球的最少数量。
输入/输出例子1输入:
.(|||.()(||||||)
输出:
4
输入/输出例子2输入:
(|(|(||)|)|)
输出:
6
输入/输出例子3输入:
.....|||||.....
输出:
0
代码:
#include
using namespace std;
string s;
int ans;
int main(){
cin>>s;
for(int i=1;i<=s.size();i++)
{
if(s[i]==')')
ans++;
if(s[i]=='(')
{
ans++;
i++;
}
}
cout< return 0;
}
分析:
为了防止找左括号时多找一遍右括号,我们直接i++跳过,当找到右括号时计数器++(因为找到前面时左括号时已经跳过,所以不会多加)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)