程序查找python单词列表中存在的子序列数
假设我们有一个单词列表和一个字符串s,我们必须在单词列表中找到作为s的子序列的字符串数。
因此,如果输入像单词=[“xz”,“xw”,“y”]s=“xyz”,则输出将为2,因为“xz”和“y”是“xyz”的子序列。
为了解决这个问题,我们将遵循以下步骤-
回答:=0
d:=一个空的映射
对于单词中的每个单词,
在d[word[0]]的末尾插入单词
对于s中的每个c
如果单词的大小为1,则
除此以外,
回答:=回答+1
在d[word[1]]的末尾插入word[从索引1到末尾]的子字符串
l:=d[c]
d[c]:=一个新列表
对于l中的每个字,
返回ans
让我们看下面的实现以更好地理解-
例
from collections import defaultdict
class Solution:
def solve(self, words, s):
ans = 0
d = defaultdict(list)
for word in words:
d[word[0]].append(word)
for c in s:
l = d[c]
d[c] = []
for word in l:
if len(word) == 1:
ans += 1
else:
d[word[1]].append(word[1:])
return ans
ob = Solution()words = ["xz", "xw", "y"]
s = "xyz"
print(ob.solve(words, s))输入值
["xz", "xw", "y"], "xyz"
输出结果
2
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短