关闭

1021:恶搞指数

230人阅读 评论(0) 收藏 举报
分类:

题目描述

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

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:14851次
    • 积分:106
    • 等级:
    • 排名:千里之外
    • 原创:91篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档