-3
我很接近完成我的程序,但我有一個小問題。在I/O是假設是這樣的:LCS Python關閉
I: fanlc2("human", "chimpanzee")
O: [4, 'h#man', '#h#m#an###']
,但礦,執行以下操作:
I: fanlc2("human", "chimpanzee")
O: [4, '#', '#h#']
是否有人可以修改我的代碼,所以我得到正確的答案。我無法弄清楚。感謝:
def fanlc2(S1, S2):
if S1 == '' or S2 == '':
return [0, S1, S2]
if S1[0] == S2[0]:
temp = fanlc2(S1[1:], S2[1:])
return [temp[0]+1, S1[0]+temp[1], S2[0]+temp[2]]
t1 = fanlc2(S1[1:], S2)
t2 = fanlc2(S1, S2[1:])
if t1[0] > t2[0] or t1[0] == t2[0]:
return [t1[0], '#'+t1[1], t2[1]]
return [t2[0], t1[1], '#'+t2[1]]
這裏有更多的I/O是該方案應該返回:
fanlc2( 「X」, 「Y」)
[0, '#', '#' ]
fanlc2( 「垃圾郵件」, 「」)
[0, '####', '']
fanlc2( 「溫泉」, 「M」)
[0, 「###」, 「#」]
fanlc2( 「貓」, 「汽車」)
[2「,CA#, 「CA#」]
fanlc2( 「貓」, 「LCA」)
[2 「CA#」, 「#ca」]
fanlc2( 「人」, 「黑猩猩」)
[4,' h#man','#h#m#an ###']
請解釋你正在做什麼,以及你認爲你的代碼應該經歷的步驟。目前我們有一個'猜測算法'的遊戲,然後我們會找出錯誤的地方。 –
您需要先將其降至最低級別; 'fanlc2('n','an')'已經不會產生你所期望的,我想。 –
代碼應取2個字符串並返回一個列表: [字符串,字符串1,字符串2的LCS],但是當它返回字符串1和字符串2時,它應該有'#'不一樣 – user1681664