官方解答 · 置頂Python
官方解答|雙燈檢查台
官方解答
Python #47:雙燈檢查台
解題規則
訊號檢查台同時檢查兩項條件,請記錄兩盞檢查燈所對應的分類與讀值。
第一條件是「a 大於 b」,第二條件是「a 不等於 b」。兩項都成立時回傳 [「兩項符合」,a+b+c];僅第一項成立回傳 [「僅第一項」,a+b-c];僅第二項成立回傳 [「僅第二項」,a-b+c];都不成立回傳 [「皆不符合」,a-b-c]。請完整處理四種分支。
處理步驟
先各自算出 first、second。依兩者的四種組合選取分類文字與 a±b±c,第一條件控制 b 的正負,第二條件控制 c 的正負。
為何正確
條件只讀取原始輸入,成立與不成立的分支涵蓋所有可能。多條件情況分別記住兩個布林值,因此四種組合不會混淆。
邊界與注意事項
本題輸入範圍:a、b、c 均為 -100~100 的整數。
範例追蹤
依參數順序 a, b, c 傳入 [-4,-4,2]。關鍵中間資料為 first = False;second = False。最後回傳 ['皆不符合', -2]。結果由 return 回傳,不使用 print。
複雜度
依本題有界的數字、日期範圍,執行固定次數運算,時間與額外空間為 O(1)。
CodeSprout 官方解答 · 題意分析、解題步驟與完整參考程式
def solve(a, b, c):
first = a > b
second = a != b
if first and second:
return ['兩項符合', a + b + c]
if first:
return ['僅第一項', a + b - c]
if second:
return ['僅第二項', a - b + c]
return ['皆不符合', a - b - c]
留言討論 0
登入 後就能留言,一起討論不同的寫法。