检查字符串的程序可以在python中分解成给定的单词列表

假设我们有一个单词列表和另一个不带空格的字符串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
    猜你喜欢