23. 字典中的子序列

23. 字典中的子序列

中文English

给一字串s和单词的字典dict,请返回字典中所有是s的子序列的单词。

子序列的定义是:如果字符串s通过去掉部分字母可以变成字符串t,那么t是s的子序列

样例

样例 1:

输入:"lintcode",["de","ding","co","code","lint"]
输出:["de","co","code","lint"]
解释
我们可以删去"lintco"得到"de"。
我们可以删去"lint"和"de"得到"co"。
我们可以删去"lint"得到"code"。
我们可以删去"code"得到"lint"。
我们无法得到"ding"。

样例 2:

输入:"a",[]
输出:[]
解释:字典为空

挑战

如果字符串长度s小于等于100\,000100000应当怎么做?

注意事项

字符串s的长度小于等于1\,0001000。

字典中的单词数量小于等于1\,0001000,单词长度总和小于等于1\,0001000。

所有字符串只包含小写字母。

 
 
输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param s: a string
    @param wordDict: A set of words.
    @return: All correct words
    """
    '''
    大致思路:
    1.循环,wordDict,给出一个方法,可以判断当前字符是否在字符串s里面,如果在,则写入res里面,返回。
    '''
    def  wordSubsequence(self, s, wordDict):
        res = []
        for word in wordDict:
            
            if self.isInWord(word,s) == True:
                res.append(word)
        return res
    def isInWord(self,num,nums):
        for i in num:
            if i not in nums:
                return False
            else:
                nums =  nums[nums.index(i)+1:]
        return True

 

posted @ 2020-05-04 15:12  风不再来  阅读(323)  评论(0编辑  收藏  举报