题目描述
小明的朋友过生日,小明准备了一件礼物,不过小明想恶搞一下他的朋友,所以他准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。
用()表示一个盒子,B表示礼物,小明想让你帮他算出恶搞指数,即最少需要拆多少个盒子才能拿到礼物。
输入包含多组测试数据。每组测试数据是一个长度不大于1000,只包含(,)和 B 三种字符的字符串,代表小明设计的礼物透视图。
题目保证每个透视图都是合法的。
对于每组测试,请在一行里面输出恶搞指数。
样例输入((((B)()))())
(B)
4
1
我的方法:program p1021;
var a:ansistring;i,j,k:longint;
begin
while not eof do
begin
i:=0;j:=0;k:=0;
readln(a);
i:=pos('B',a);
delete(a,i,length(a)-i);
for j:=1 to i do
if a[j]='(' then k:=k+1
else k:=k-1;
writeln(k+1);
end;
end.
老师的方法:program p1021;
var i,j,k,n:longint;
s:ansistring;
begin
while not eof do
begin
readln(s);
i:=0; j:=0;
while i<length(s) do
begin
i:=i+1;
if s[i]='(' then j:=j+1
else if s[i]=')' then j:=j-1
else if s[i]='B' then
begin
writeln(j);
break;
end;
end;
end;
end.