Python 字串問題

求該題目程式碼

題目要求自行輸入
且答案不只那五種
會有其他可能

請對字串做乘法運算 
並輸出其乘開後的內容 

範例

輸入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]]]'))

img

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)