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