在下面的代碼中,我返回給定字符串中連續數字的整數值。在遞歸中只打印一個列表
def consecutive_length(S):
if S == '':
return 0
if len(S) == 1:
return 1
if S[0] == S[1]:
return 1 + consecutive_length(S[1:])
return 1
def compress(S):
if S == '':
return 0
cons_length = consecutive_length(S)
return [cons_length] + [compress(S[cons_length:])]
當我運行這個打印語句,返回以下:
>>> print (compress('1111000000001111000111111111111111'))
[4, [8, [4, [3, [15, 0]]]]]
在那裏我真的希望下面的返回到:
>>> print (compress('1111000000001111000111111111111111'))
[4, 8, 4, 3, 15]
取出括號'[壓縮(S [cons_length:])]' – zondo
@zondo如果我這樣做,我得到一個錯誤,說'TypeError:只能連接列表(不是「int」)列表' – jape
啊,是的。無論如何,無論如何,在任何情況下你會返回一個整數(例如'return 0'),改變它返回一個列表:'return [0]' – zondo