目录

力扣791. 自定义字符串排序

力扣791. 自定义字符串排序

给定两个字符串 ordersorder 的所有字母都是 唯一 的,并且预先按照一些自定义的顺序排序。

s 的字符进行置换,使其与排序的 order 相匹配。更具体地说,如果在 order 中的字符 x 出现字符 y 之前,那么在排列后的字符串中, x 也应该出现在 y 之前。

返回 *满足这个性质的 s 的任意一种排列 *。

示例 1:

输入: order = “cba”, s = “abcd”

输出: “cbad”

解释: "a""b""c"order 中出现,所以 "a""b""c" 的顺序应该是 "c""b",和 "a"

由于 "d" 没有在 order 中出现,它可以在返回字符串的任意位置。"dcba""cdba""cbda" 也是合法的输出。

示例 2:

输入: order = “bcafg”, s = “abcd”

输出: “bcad”

解释:order** **中的字符 "b""c""a" 决定了 s 中字符的顺序。s 中的字符 "d" 没有出现在 order 中,因此其位置是可变的。

按照 order 中的出现顺序,"b""c""a" 应该按 "b""c""a" 的顺序排列。"d" 可以放在任何位置,因为它不受顺序限制。输出 "bcad" 正确遵循了这一规则。其他排列如 "dbca""bcda" 也是合法的,只要 "b""c""a" 的顺序保持不变。

提示:

  • 1 <= order.length <= 26

  • 1 <= s.length <= 200

  • orders 由小写英文字母组成

  • order 中的所有字符都 不同