切換
舊版
前往
大廳
主題

LeetCode - 389. Find the Difference 解題心得

Not In My Back Yard | 2020-10-12 00:00:09 | 巴幣 2 | 人氣 162

題目連結:


題目意譯:
給你兩個字串 s 和 t 。

字串 t 由 s 中的字元隨機打亂位置之後再於任意位置插上一個額外字母組成。

回傳額外加到 t 中的該字元。

限制:
0 ≦ s.length ≦ 1000
t.length == s.length + 1
s 和 t 只由小寫英文字母組成。



範例測資:
範例 1:
輸入: s = "abcd", t = "abcde"
輸出: "e"
解釋: 'e' 是被加入到 t 中的字元。

範例 2:
輸入: s = "", t = "y"
輸出: "y"

範例 3:
輸入: s = "a", t = "aa"
輸出: "a"

範例 4:
輸入: s = "ae", t = "aea"
輸出: "a"


解題思維:
因為 s 和 t 的內容只差在一個額外加進 t 的字元。因此如果將 s 和 t 兩者的字元分別轉換成數字(例如依照 ASCII 編碼直接對應成數字),則兩者各自的總和只會差該被插入的字元之對應值。

因此定義一變數 sums,先掃過 t ,加總每個字元的對應值。之後再掃過 s ,減去每個字元的對應值。最後 sums 所代表的字元即是所求。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創作回應

更多創作