Longest Word in Dictionary through Deleting
解题思路:
这道题是给一个字符串s和一个单词数组,找到数组里面最长的单词,该单词可以通过删除s的某些字符来得到。...如果答案不止一个,返回长度最长且字典序最小的单词。如果答案不存在,返回空字符串。
双指针法。对于单词数组中的每个单词 word,字符串 s 和 word 逐字符比较向后滑动。...方法1(Sort):
以 S = "acbaa" 为例,先按照 S 的每个字母出现的次数从大到小排列,得到一个列表,如 A = ['a','a','a','b','c'],然后建立一个和 S 相同长度的列表...] -> [1,3,1,3]
[9,3,2,2,3] -> [9,2,3,2,3]
[8,5,7,2,4] -> [8,5,4,2,7]
由此,我们观察到规律,需要交换的第一个位置 first 是从右到左遍历的第一个逆序对...看到数据范围为 的字母序列进行全排列,并保存到集合中(去重)。