首页 > 其他 > 详细

关于括号的简单模拟题

时间:2015-05-22 18:36:09      阅读:85      评论:0      收藏:0      [点我收藏+]

description

给定一个括号字符数组S,S可以用两个整数数组P和W来描述,其中:

数组P中的元素Pi定义为:第i个右括号前面有Pi个左括号;

数组W中的元素Wi定义为,第i个右括号和其配对的左括号之间所包含的完整的括号的对数。

现在给你P数组,让你求出该字符数组S所对应的W数组。

比如下面这个例子 

	S		(((()()())))

	P	         4 5 6666

	W  	         1 1 1456

input

输入第一行是一个整数t (1 <= t <= 10), 表示有t组测试数据。每组数据第一行是一个整数n (1 <= n <= 20), 然后是P数组中的n个元素。

output

对于输入的每一个P数组,输出其对应的W数组

sample_input

2
6
4 5 6 6 6 6
9 
4 6 6 6 6 8 9 9 9

sample_output

1 1 1 4 5 6
1 1 2 4 5 1 1 3 9

 

#include <stdio.h>
#include <stdlib.h>

int main()
{
  int t,n,i,k;
  int a[20],b[20];
  scanf("%d",&t);
  while(t--)
 {
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    scanf("%d",&a[i]);
    b[1]=1;
    for(i=2;i<=n;i++)
  {
    if(a[i]!=a[i-1])
    b[i]=1;
    else
   {
       k=i-1;
        while(a[i]-a[k]<i-k&&k>0)
        k--;
      b[i]= i-k;
   }
}
    for(i=1;i<=n;i++)
    printf("%d ",b[i]);
    printf("\n");
 }
  return 0;
}

关于括号的简单模拟题

原文:http://www.cnblogs.com/chen9510/p/4522721.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!