P1928 外星密码 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
1. 40分代码
s = list(input()) l = [] r = [] for i in range(len(s)): if s[i] == '[': l.append(i) for i in range(len(s)-1,-1,-1): if s[i] == ']': r.append(i) dx = l[0] dy = r[0] l.sort(reverse=True) r.sort() def fun(x,y): global str1 ll = s[x+1:y] num = '' for i in ll: if '0'<=i<='9': num += i elif i == '[': break else: str1 += i str1 = int(num)*str1 str1 = '' while l: x = l.pop(0) y = r.pop(0) fun(x,y) ps1 = s[:dx] ps2 = s[dy+1:] str1 = ''.join(ps1)+str1+''.join(ps2) print(str1)
2.满分AC代码
def fun(s_part): s_part = s_part.strip('[]') coun = 0 for i in s_part: if '0'<=i<='9': coun += 1 num = int(s_part[:coun]) str1 = s_part[coun:] return num*str1 s = input() while True: try: left = s.rindex('[') right = s.index(']',left) except: break s_part = s[left:right+1] s = s.replace(s_part,fun(s_part)) print(s)