假设我们有一个单词列表和另一个不带空格的字符串s。我们必须检查是否可以使用单词列表来分解字符串。
因此,如果输入就像单词= [“ love”,“ python”,“ we”,“ programming”,“ language”] s =“ welovepythonprogramming”,则输出将为True
为了解决这个问题,我们将遵循以下步骤-
单词:=一组新的所有唯一单词
定义一个功能rec()
。这需要我
如果i与s的大小相同,则
返回True
acc:=空字符串
对于范围i到大小s的j,执行
如果rec(j + 1)为True,则
返回True
acc:= acc并置s [j]
如果acc是文字,则
返回False
从主方法调用rec并返回结果
让我们看下面的实现以更好地理解-
class Solution: def solve(self, words, s): words = set(words) def rec(i=0): if i == len(s): return True acc = "" for j in range(i, len(s)): acc += s[j] if acc in words: if rec(j + 1): return True return False return rec() ob = Solution()words = ["love", "python", "we", "programming", "language"] s = "welovepythonprogramming" print(ob.solve(words, s))
["love", "python", "we", "programming", "language"], "welovepythonprogramming"
输出结果
True