ACM括號編碼 C 實現)

2021-07-27 07:19:10 字數 843 閱讀 4160

括號編碼

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 26

4 5 6 6 6 6

94 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

using namespace std;

int a[1000],stack[1000],count[1000];

char str[1010];

int main()

str[++s]=')';

sum++;

count[s]=sum;

}top=0;

for(i=1;i

ACM括號編碼 C 實現)

括號編碼 description s s1 s2.s2n 是乙個符合格式的括號的字串,s能按下面兩種方式編碼 p編碼 編碼是乙個整數序列p p1 p2.pn,pi是第i個右括號之前的左括號的數目。w編碼 編碼是乙個整數序列w p1 p2.pn,wi是第i個右括號的編碼值,它等於這個右括號到與之匹配的...

ACM非字首編碼 C 實現

非字首編碼 description 有很多方法可以實現使用2進製序列對字元進行編碼,比如典型的huffman編碼,如果在對字元的2進製編碼中不存在某乙個字元的編碼是另乙個字元編碼的字首,那麼就稱這種編碼方式為非字首編碼,huffman編碼就是一種非字首編碼。比如 a 00 b 10 c 0100 d...

ACM 括號匹配

時間限制 1000 ms 記憶體限制 65535 kb 難度 6 描述 給你乙個字串,裡面只包含 四種符號,請問你需要至少新增多少個括號才能使這些括號匹配起來。如 是匹配的 是匹配的 是不匹配的 是不匹配的 輸入 第一行輸入乙個正整數n,表示測試資料組數 n 10 每組測試資料都只有一行,是乙個字串...