博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
括号编码
阅读量:4972 次
发布时间:2019-06-12

本文共 1147 字,大约阅读时间需要 3 分钟。

括号编码

 
Time Limit : 1000 MS   Memory Limit : 65536 KB
 

Description

S = s1 s2...s2n 是一个符合格式的括号的字符串,S能按下面两种方式编码:

P编码:编码是一个整数序列P = p1 p2...pn,pi是第i个右括号之前的左括号的数目。
W编码:编码是一个整数序列W= p1 p2...pn,wi是第i个右括号的编码值,它等于这个右括号到与之匹配的左括号之间的右括号的数目(包括它自己)。
比如:

 

S

(

(

(

(

)

(

)

(

)

)

)

)

P

 

 

 

 

4

 

5

 

6

6

6

6

W

 

 

 

 

1

 

1

 

1

4

5

6

 

 

 

请写一个程序将P序列转换成W序列。

输入:

第一行是一个整数K,表示有多少个测试用例,以后每两行一个测试用例。每个测试用例第一行为一个整数n(1 <= n <= 20),表示P序列长度,每个测试用例第二行n个非负整数,每个整数之间有一个空格分隔。

输出:

每行输出一个测试用例的结果。每行包括n个整数,每个整数之间用一个空格分隔。

 

Sample Input

264 5 6 6 6 694 6 6 6 6 8 9 9 9
 

Sample Output

1 1 1 4 5 61 1 2 4 5 1 1 3 9
 
 
参考代码:
#include
#include
using namespace std;int a[1000],stack[1000],count[1000];char str[1010];int main(){ int cases,n,t,i,j,s,sum,top; cin>>cases; while(cases--) { cin>>n; s=0;a[0]=0;sum=0; for(i=1;i<=n;i++) { cin>>a[i]; t=a[i]-a[i-1]; for(j=1;j<=t;j++) { str[++s]='('; count[s]=sum; } str[++s]=')';sum++;count[s]=sum; } top=0; for(i=1;i

 

 

转载于:https://www.cnblogs.com/tufujie/p/4854253.html

你可能感兴趣的文章
强大的css3
查看>>
C#委托与事件
查看>>
Scala系列:注解
查看>>
Linux kernel 发布 5.0-rc1 版本
查看>>
[转帖]创建文件或修改文件时间 touch
查看>>
【转帖】Linux mount 域控权限的共享目录
查看>>
NSURLSession的简单使用
查看>>
python征程3.0(python对象)
查看>>
jQuery 库 - 特性
查看>>
搜索好题2
查看>>
3 Selenium Python 数据库及文件
查看>>
Compounding绑定属性
查看>>
【转】jsp 和 servlet的联系和区别
查看>>
mvc4 用NPOI导出Excel
查看>>
格雷码与二进制码互相转换
查看>>
数码管的封装实验 --- verilog
查看>>
unity, 只发射一个粒子的粒子系统
查看>>
第十六章----面向对象(宠物乱斗之主面板)
查看>>
HDU 1564 Play a game
查看>>
POJ1308(Is It A Tree?)
查看>>