プログラムの完成に近づいていますが、小さな問題があります。I/O は次のようになります。
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###']