題目連結:
題目意譯:
給你兩個字串 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 所代表的字元即是所求。
此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。