13. 以下程式執行後,mystery_len 會是多少?

(A)2
(B)3
(C)4
(D)7

答案:登入後查看
統計: A(3), B(8), C(9), D(4), E(0) #3447133

詳解 (共 2 筆)

#6740461
當然可以,以下是針對題目的詳細解答說明:...
(共 828 字,隱藏中)
前往觀看
1
0
#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