運行 python 程式時遇到問題。目的是確定序列1, 2, 3是否在給定的ints 串列中。當它運行兩個測驗時,代碼可以作業。但是,第三次測驗失敗了,我不知道為什么。
我的代碼是:
def has123(nums):
s = ''.join(str(i) for i in sorted(nums))
if '123' in s:
return True
else:
return False
當通過引數[1, 1, 2, 3, 1]and[1, 1, 2, 4, 1]時,它回傳正確的輸出,但不是 for [1, 1, 2, 1, 2, 3]。
uj5u.com熱心網友回復:
sorted()從中洗掉s = ''.join(str(i) for i in sorted(nums))
sorted() 對串列進行排序并按升序排列
所以在你的情況下[1, 1, 2, 1, 2, 3]轉換為'111223'使用時sorted(),因此無法找到模式
uj5u.com熱心網友回復:
如果數字的順序很重要,在這種情況下確實如此,所以不要對陣列進行排序。你在做什么,你正在對陣列進行排序,然后制作排序陣列的字串。因此,陣列元素的位置發生了變化,在這種情況下您的模式不匹配。
def has123(nums):
s = ''.join(str(i) for i in nums)
if '123' in s:
return True
else:
return False
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/415222.html
標籤:
