1014 - 恶搞指数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

小明的朋友过生日,小明准备了一件礼物,不过小明想恶搞一下他的朋友,所以他准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。
用()表示一个盒子,B表示礼物,小明想让你帮他算出恶搞指数,即最少需要拆多少个盒子才能拿到礼物。

题目输入

输入包含多组测试数据。每组测试数据是一个长度不大于1000,只包含(,)和 B 三种字符的字符串,代表小明设计的礼物透视图。
题目保证每个透视图都是合法的。

题目输出

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

输入/输出样例

输入格式

((((B)()))())
(B)

输出格式

4
1

C语言解答

#include<stdio.h>
#include<string.h>

int main()
{
	int i,sum;
	char a[1001];
	while(gets(a))
	{
		sum=0;
		for(i=0;a[i]!='B';i++)
		{
			if(a[i]=='(')
				sum++;
			if(a[i]==')')
				sum--;
		}
		printf("%d\n",sum);
	}
	return 0;
}

C++解答

#include<stdio.h>
#include<string.h>

int main()
{
	int i,sum;
	char a[1001];
	while(gets(a))
	{
		sum=0;
		for(i=0;a[i]!='B';i++)
		{
			if(a[i]=='(')
				sum++;
			if(a[i]==')')
				sum--;
		}
		printf("%d\n",sum);
	}
	return 0;
}

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			String s = in.nextLine();
			while(true){
				String tem = s.replaceAll("\\(\\)", "");
				if(tem.equals(s))break;
				else s = tem;
			}
			char[] cs = s.toCharArray();
			for(int i=0;i<cs.length;i++)
				if(cs[i]=='B')System.out.println(i);
		}
	}

}

Python解答

import sys

for line in sys.stdin:
    data = line.split()[0]
    while data.find('()')!=-1:
          data = data.replace('()','')
    print data.find('B')