-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