我有是這樣寫的txt文件:python如何解碼使用堆棧的單詞?
6
abcd<<<<<<
n<J<g<1<A<
ABCD<<<1>>>2<<3>->>>>>>
,我想用「疊加」蟒蛇這個文件進行解碼。 在這個文件中,'<'表示光標移動此←方式 '>'表示光標移動→這種方式 和' - '表示在光標位置後右刪除左邊的單詞。
所以最後,我應該想的是
abcd
A1gJn
A1BC32
我試圖做出了一定的功能來解決這個問題 但我不知道什麼是錯我的功能。 下面寫的是我所做的。
def decodeString_stack(string):
"""Recover a string from a keylog string
input: string(string), output:(decoded string)
deCoded[ ] : list of decoded string(cursor left)
temp[ ] : list of decoded string(cursor right)
"""
deCoded=[]; temp=[]
for ch in string:
if ch=='<':
x=deCoded.pop()
temp.append(x)
elif ch=='>':
x=temp.pop()
deCoded.append(x)
elif ch=='-':
del deCoded[len(deCoded)-1]
return ''.join(deCoded)
它總是停止,因爲列表是空的一個
import time
fr=open("input.txt",'r')
fw=open("output_txt",'w')
print('start decoding')
startTime=time.time()
for aLine in fr:
deCoded=decodeString_stack(aLine)
print(deCoded)
exeTime=time.time()-startTime
print("decode complete(laspe time= %.2f sec)" %exeTime)
fr.close(); fw.close()
我怎樣才能作出正確的?
如果您的問題已被解答,請將其標記爲此。 – SteveJ