大家好,我需要一些關于 python 腳本的幫助。
內側的花括號需要交替反轉。我已經為此苦苦掙扎了2個多小時...
def reverse(string):
counter = 0
res = [""]
for i in string:
if i == "(":
res.append("")
counter = counter 1
print(res, counter)
elif i == ")":
counter = counter - 1
if counter % 2 == 0:
res[counter] = res.pop()
print(res, counter)
else:
res[counter] = res[counter] res.pop()
print(res, counter)
elif counter % 2 == 0:
res[counter] = i
print(res, counter)
else:
res[counter] = i res[counter]
print(res, counter)
return res[0]
INPUT: E(ev(ry)ht)i(gn)
EXPECTED OUTPUT: Everything
OUTPUT:
['E', 'very'] 1
['E', 'hvery'] 1
['E', 'thvery'] 1
['Ethvery'] 0
['Ethveryi'] 0
['Ethveryi', ''] 1
['Ethveryi', 'g'] 1
['Ethveryi', 'ng'] 1
['Ethverying'] 0
如果您提供幫助,我將不勝感激。
uj5u.com熱心網友回復:
list只要檢查的字符不是括號,您就可以遍歷輸入字串并將字符添加到a 中。如果檢查的字符是括號,您需要知道到目前為止看到的括號數是偶數還是奇數。如果是偶數,您可以將 中的字符添加list到結果中。如果是奇數,則必須將list反轉的字符添加到結果中。在任何一種情況下,您都清空list, 并且在回傳結果之前需要注意它是空的。
>>> def reverse(a_string):
... seen_even = True
... temp, result = [], []
... for c in a_string:
... if c not in ('(',')'):
... temp.append(c)
... else:
... if seen_even:
... result.extend(temp)
... else:
... result.extend(temp[::-1])
... seen_even = not seen_even
... temp = []
... if temp: # e.g., 'Everything', 'Everythi)gn'
... if seen_even:
... result.extend(temp)
... else:
... result.extend(temp[::-1])
... return ''.join(result)
...
>>> inp_string = 'E(ev(ry)ht)i(gn)'
>>> reverse(inp_string)
'Everything'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/443857.html
標籤:Python python-3.x 逆转
