在 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