1021:恶搞指数

题目描述

小明的朋友过生日,小明准备了一件礼物,不过小明想恶搞一下他的朋友,所以他准备了一堆盒子,其中有一个盒子里面装了礼物。盒子里面可以再放零个或者多个盒子。假设放礼物的盒子里不再放其他盒子。
用()表示一个盒子,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.

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jing1223639316/article/details/46826563
个人分类: 编程
上一篇1021:恶搞指数
下一篇4818:【一维数组】元素排序 分数: 2
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭