isAscendingSequence(n)
,其輸入參數 n
為一個僅包含整數(int
)的列表(list
),該函數需要回傳一個布林值(bool
)用以判斷整數列表 n
是否為「遞增數列」?若一個整數列表至少包含一個整數,且對於所有整數皆大於其前一項(如果存在的話)的整數,則我們稱該整數列表為「遞增數列」。isAscendingSequenceAlice(n)
,而由 Bob 所完成的函數則是重新命名為 isAscendingSequenceBob(n)
,並且共同撰寫另一個函數 checkReturnValuesAreSame(n)
用以判斷對於輸入參數 n
來說兩者是否有相同的回傳值。from typing import List
# Alice version
def isAscendingSequenceAlice(n: List[int]) -> bool:
if not n:
return False
for i in range(1, len(n)):
if n[i-1] >= n[i]:
return False
return True
# Bob version
def isAscendingSequenceBob(n: List[int]) -> bool:
return n and all(a < b for a, b in zip(n, n[1:]))
# Checks if two functions have the same return value
def checkReturnValuesAreSame(n: List[int]) -> bool:
return isAscendingSequenceAlice(n) == isAscendingSequenceBob(n)
n
兩人都有著相同的回傳值也並不代表兩人的所撰寫的函數皆是正確的,有可能是兩人尚未找到能使兩人的函數回傳值不同的 n
,也有可能是恰好兩人所犯的錯相同而回傳了相同的錯誤回傳值。checkReturnValuesAreSame(n)
的輸入參數時會回傳 False
。Alice
或是 Bob
,代表誰的程式碼是正確的。0123456789
,所有的「數字」轉換成 Python 整數型態時其值需介於 $\text{[} 0, 2^{31} \text{)} $ 範圍之內,該數列所含「數字」個數即數列長度不應超過 $100$,且當該數列作為整數列表 n
輸入 checkReturnValuesAreSame(n)
時,會使得該函數的回傳值為 False
。\n
(U+000A
) 單一字元作為輸出中第一部分與第二部分的結尾。
(U+0020
) 單一字元作為第二部分中分隔「數字」的字元。Alice 1 2 3 4 5
Alice
或是 Bob
checkReturnValuesAreSame(n)
回傳 False
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」
|