前往
大廳
主題

LeetCode - 791. Custom Sort String 解題心得

Not In My Back Yard | 2021-11-26 00:00:04 | 巴幣 0 | 人氣 214

題目連結:


題目意譯:
你被給定兩個字串 order 以及 s。所有 word 中的字母相異且已預先按照某種自定義順序排序好了。

將 s 的字元重新排列使其符合 order 中的順序。更正式地說,如果一個字元 x 在 order 中先於字元 y 出現,則在排列字串時應將 x 放在 y 前面出現。

回傳滿足該性質之任意 s 的排列。

限制:
1 ≦ order.length ≦ 26
1 ≦ s.length ≦ 200
order 和 s 由小寫英文字母組成。
所有 order 中字元相異。



範例測資:
範例 1:
輸入: order = "cba", s = "abcd"
輸出: "cbad"
解釋:
"a" 、 "b" 、 "c" 按特定順序出現,因此 "a" 、 "b" 、 "c" 之順序應為 "c" 、 "b" 和 "a"。
由於 "d" 並沒有出現於 order 中,所以它可以出現於回傳字串中的任意位置。"dcba" 、 "cdba" 、 "cbda" 同樣也是合法輸出。

範例 2:
輸入: order = "cbafg", s = "abcd"
輸出: "cbad"


解題思維:
自定義排序的問題,如這題。而我們可以將沒有出現於 order 中的字母統一視為排在所有 order 中的字母的前面(或是後面。主要是為了人方便觀看)。




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

創作回應

更多創作