※ 引述《Rushia (みけねこ的鼻屎)》之銘言:
: https://leetcode.com/problems/custom-sort-string/description
: 791. Custom Sort String
: 給你一個字串s和一個表示字元排序優先的字串order,排序字串s,如果字元不在 order
: 的話順序隨意。
: 思路:
: 1.創建一個基於order索引的comparator丟給排序函數
: py code
: ----------------------------------------------
: class Solution:
: def customSortString(self, order: str, s: str) -> str:
: dic = collections.defaultdict(lambda: ord(c) + 26)
: for i, c in enumerate(order):
: dic[c] = i
: return ''.join(sorted(s, key=lambda x: dic[x]))
: ----------------------------------------------
差不多思路
先建order map
然後把str變成Vec比對order map
不在order map就塞後面
最後拼回來
use std::collections::HashMap;
impl Solution {
pub fn custom_sort_string(order: String, s: String) -> String {
let mut order_map = HashMap::new();
for (index, ch) in order.chars().enumerate(){
order_map.insert(ch, index);
}
let mut sorted_str: Vec<_> = s.chars().collect();
sorted_str.sort_by_key(|&ch| order_map.get(&ch)
.unwrap_or(&usize::MAX));
sorted_str.iter().collect()
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.249.242 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1710165769.A.1E5.html