題目連結:
題目意譯:
現在有一個程式語言只有著四種操作以及一個變數 X:
++X 和 X++ 將 X 的值加上 1。
--X 和 X-- 將 X 的值減去 1。
一開始,X 之值為 0。
給定一字串陣列 operations 代表一個操作列表,回傳執行所有操作後的 X 之最終值。
限制:
1 ≦ operations.length ≦ 100
operations[i] 只會是 "++X" 、 "X++" 、 "--X" 或是 "X--"。
範例測資:
範例 1:
輸入: operations = ["--X","X++","X++"]
輸出: 1
解釋: 操作之執行如下:
一開始,X = 0。
--X:X 減去 1,X = 0 - 1 = -1。
X++:X 加上 1,X = -1 + 1 = 0。
X++:X 加上 1,X = 0 + 1 = 1。
範例 2:
輸入: operations = ["++X","++X","X++"]
輸出: 3
解釋: 操作之執行如下:
一開始,X = 0。
++X:X 加上 1,X = 0 + 1 = 1。
++X:X 加上 1,X = 1 + 1 = 2。
X++:X 加上 1,X = 2 + 1 = 3。
範例 3:
輸入: operations = ["X++","++X","--X","X--"]
輸出: 0
解釋: 操作之執行如下:
一開始,X = 0。
X++:X 加上 1,X = 0 + 1 = 1。
++X:X 加上 1,X = 1 + 1 = 2。
X--:X 減去 1,X = 2 - 1 = 1。
--X:X 減去 1,X = 1 - 1 = 0。
解題思維:
就是單純地模擬即可。
定義一個變數 X = 0。然後掃過 operations 內所有的操作,判斷每個操作中間的字元是何者(因為 "X++" 和 "++X" 中間的都是「+」;相似地 "X--" 和 "--X" 中間都是「-」),就做對應的操作即可。
最後回傳 X 之值即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。