13. 以下程式執行後,mystery_len 會是多少?
(A)2
(B)3
(C)4
(D)7
答案:登入後查看
統計: A(3), B(8), C(9), D(4), E(0) #3447133
統計: A(3), B(8), C(9), D(4), E(0) #3447133
詳解 (共 2 筆)
#7025472
這個程式的目標是找出串列 $A$ 中連續相同數字的最長長度(Longest Consecutive Subsequence of Identical Elements)。
| 步驟 (i) | A[i] | A[i-1] | A[i] == A[i-1] | curr_len 變化 | mystery_len 變化 | 說明 |
| 初始 | - | - | - | 1 | 1 | 初始化:n=14 |
| 1 | 3 | 2 | False | curr_len=1, mystery_len=1 | 1 | (新序列) 2 != 3, 比較舊 curr_len=1 (沒有更新) |
| 2 | 2 | 3 | False | curr_len=1, mystery_len=1 | 1 | (新序列) 3 != 2, 比較舊 curr_len=1 (沒有更新) |
| 3 | 3 | 2 | False | curr_len=1, mystery_len=1 | 1 | (新序列) 2 != 3, 比較舊 curr_len=1 (沒有更新) |
| 4 | 1 | 3 | False | curr_len=1, mystery_len=1 | 1 | (新序列) 3 != 1, 比較舊 curr_len=1 (沒有更新) |
| 5 | 3 | 1 | False | curr_len=1, mystery_len=1 | 1 | (新序列) 1 != 3, 比較舊 curr_len=1 (沒有更新) |
| 6 | 3 | 3 | True | 1+1 = 2 | 1 | 相同,curr_len 增加 |
| 7 | 3 | 3 | True | 2+1 = 3 | 1 | 相同,curr_len 增加 |
| 8 | 3 | 3 | True | 3+1 = 4 | 1 | 相同,curr_len 增加 |
| 9 | 2 | 3 | False | curr_len=1, mystery_len=4 | 4 | (新序列) 3 != 2, 比較舊 curr_len=4。4 > 1,更新 mystery_len=4。 |
| 10 | 2 | 2 | True | 1+1 = 2 | 4 | 相同,curr_len 增加 |
| 11 | 2 | 2 | True | 2+1 = 3 | 4 | 相同,curr_len 增加 |
| 12 | 2 | 2 | True | 3+1 = 4 | 4 | 相同,curr_len 增加 |
| 13 | 1 | 2 | False | curr_len=1, mystery_len=4 | 4 | (新序列) 2 != 1, 比較舊 curr_len=4 (沒有更新) |
| 14 | 1 | 1 | True | 1+1 = 2 | 4 | 相同,curr_len 增加 |
| 迴圈結束 | - | - | - | 2 | 4 | 迴圈結束後,最後一組 curr_len=2 會再和 mystery_len 比較。2 不大於 4,mystery_len 維持 4。 |
0
0