OpenJudge - 01068:Parencodings
主要考察字符串的应用,以及对于栈的简单应用。
def cal(lst):
stack = []
ans = 0
for char in lst:
if char == ')':
stack.append(char)
ans += 1
else:
stack.pop()
if not stack:
return ans
for _ in range(int(input())):
n = int(input())
nums = list(map(int, input().split()))
sentence = '('*nums[0]+')'
for j in range(1, n):
sentence += '('*(nums[j]-nums[j-1])+')'
for k in range(len(sentence)):
if sentence[k] == ')':
print(cal(sentence[:k+1][::-1]), end=' ')
print()