在 Python 中编写程序检查字符串是否可以被分解为给定的单词列表

在 Python 中编写程序检查字符串是否可以被分解为给定的单词列表

假设我们有一个单词列表和另一个没有空格的字符串 s。我们必须检查该字符串是否可以使用单词列表进行分解。

因此,如果输入如下:words = [“love”, “python”, “we”, “programming”, “language”] s = “welovepythonprogramming”,则输出将为 True。

要解决这个问题,我们需要按照以下步骤进行 –

  • 将单词列表定义为所有唯一单词的新集合。
  • 定义函数rec()。该函数将使用参数i。
  • 如果i与字符串s的大小相同,则
    • 返回True。
  • 将acc定义为空字符串。
  • 对于从i到字符串s的大小的j范围,执行以下操作:
    • 将s[j]连接到acc上。
    • 如果acc属于单词集合,则
      • 如果rec(j+1)为True,则
      • 返回True。
  • 返回False。
  • 从主方法中调用rec(0)并返回结果。

请看以下实现以更好地理解 –

更多Python相关文章,请阅读:Python 教程

示例

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程