Menu
CoddyTech

Word Break

文字列 s と単語のリスト wordDict が与えられます。s を wordDict の単語だけからなる部分に分割できる場合は true を、そうでない場合は false を返してください。

分割した部分は元の順序を保ち、すべて合わせると s の各文字をちょうど1回ずつ使います。単語は何度でも使えますが、すべての単語を使う必要はありません。

関数

wordBreak(s: string, wordDict: string-array) → boolean
sstring
単語に分割する文字列
wordDictstring-array
使用できる単語(それぞれ何度でも使用できます)
戻り値boolean
true は、s を辞書にある単語に分割できる場合、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が残りますが、erで始まる単語はないため、最初に当てはまる単語が必ずしも正しいとは限りません。
challenge icon

発展問題

有効な分割で使用できる最少の単語数を返します。分割できない場合は -1 を返します。表では何が変わり、実行時間は変わりますか?

コードをリセット
def wordBreak(s, wordDict):
    # ここにコードを書いてください

テスト #1

テスト #2

テスト #3

引数

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

期待される出力

true