Menu
CoddyTech

Word Break

给定一个字符串 s 和一个单词列表 wordDict。如果你能将 s 拆分成若干部分,且每部分都是 wordDict 中的单词,则返回 true,否则返回 false。

这些部分要保持原有顺序,并且恰好使用 s 中的每个字母一次。一个单词可以使用任意次,你不必使用所有单词。

函数

wordBreak(s: string, wordDict: string-array) → boolean
sstring
要拆分成单词的字符串
wordDictstring-array
你可以使用这些单词,每个单词都可以使用任意多次
返回值boolean
如果 s 可以拆分成字典中的单词,则为 true,否则为 false

约束条件

  • 1 ≤ s.length ≤ 300
  • 1 ≤ wordDict.length ≤ 1000
  • 1 ≤ wordDict[i].length ≤ 20
  • s,并且每个单词都只包含小写英文字母。
  • wordDict 中的单词各不相同。

示例

输入
s = "sunflowerseed"wordDict = ["sun", "flow", "flower", "seed"]
输出
true
解释
把它切分成 sun、flower、seed。在 sun 后面取 flow 会剩下 er,没有单词以它开头,所以第一个能匹配的单词不一定总是正确的。
challenge icon

进阶

返回有效切分所需的最少单词数;如果无法切分 s,则返回 -1。表格中有什么变化?运行时间会改变吗?

重置代码
def wordBreak(s, wordDict):
    # 在这里编写代码

测试 #1

测试 #2

测试 #3

参数

s = "sunflowerseed"
wordDict = ["sun", "flow", "flower", "seed"]

预期输出

true