求該題目程式碼
題目要求自行輸入
且答案不只那五種
會有其他可能
請對字串做乘法運算
並輸出其乘開後的內容
範例
輸入1:
3[a]2[bc]
輸出1:
aaabcbc
輸入2:
3[a2[c]]
輸出2:
accaccacc
輸入3:
2[abc]3[cd]ef
輸出3:
abcabccdcdcdef
輸入4:
2[3[pe]2[ko]]
輸出4:
pepepekokopepepekoko
輸入5:
2[d2[e2[f]]]
說出5:
deffeffdeffeff
x = input("请输入字符串:")
while x.find('[') != -1:
res = x.rindex('[')
res2 = x.index(']', res)
x = x.replace(x[res - 1:res2 + 1], x[res + 1:res2] * int(x[res - 1]))
print(x)
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author: Roc-xb
"""
def decodeString(s):
n = len(s)
tmp = []
st = []
count = 0
ss = ""
for i in range(n):
if ord(s[i]) >= ord('0') and ord(s[i]) <= ord('9'):
count = 10 * count + (ord(s[i]) - ord('0'))
elif '[' == s[i]:
tmp.append(count)
count = 0
st.append(ss)
ss = ""
elif ']' == s[i]:
num = tmp.pop()
for i in range(num):
st[-1] += ss
ss = st.pop()
else:
ss += s[i]
return ss
if __name__ == '__main__':
s = "3[a]2[bc]"
print(decodeString('3[a]2[bc]'))
print(decodeString('3[a2[c]]'))
print(decodeString('2[abc]3[cd]ef'))
print(decodeString('2[3[pe]2[ko]]'))
print(decodeString('2[d2[e2[f]]]'))

def decodeString(s):
n = len(s)
tmp = []
st = []
count = 0
ss = ""
for i in range(n):
if ord(s[i]) >= ord('0') and ord(s[i]) <= ord('9'):
count = 10 * count + (ord(s[i]) - ord('0'))
elif '[' == s[i]:
tmp.append(count)
count = 0
st.append(ss)
ss = ""
elif ']' == s[i]:
num = tmp.pop()
for i in range(num):
st[-1] += ss
ss = st.pop()
else:
ss += s[i]
return ss
if __name__ == '__main__':
s = input ('请输入字符串')
out = decodeString(s)
print (out)