1
import numpy as np
def lcs(i, j):
    global x, y, c         
    if i <= 0 or j <= 0:
        return 0
    else:
        if c[i][j] < 0:
            if x[i - 1] == y[j - 1]:
                c[i][j] = lcs(i - 1, j - 1) + 1
            else:
                m = lcs(i - 1, j)
                n = lcs(i, j - 1)
                print m, n
                c[i][j] = max(m, n)
        else: return c[i][j]
c = np.zeros((8, 8), int)
c = c - 1
x = 'ABCBDAB'
y = 'BDCABA'
lcs(7, 6)
print c

プログラムにバグがあるので、'm','n',

印刷結果に「なし」が表示される

元:

0 0
0 None
0 None
0 None
None None

次に、プログラムでエラーが発生します。

TypeError: long() argument must be a string or a number, not 'NoneType'

「なし」がどこに来るのかわかりません

私は新しいです、ありがとう

4

1 に答える 1

0

「なし」がどこに来るのかわかりません

何も返さない場合、Python 関数の戻り値はNone.

特に、if c[i][j] < 0:ブランチでは何も返しません。

于 2013-10-06T13:29:10.643 に答える