Menu
CoddyTech

Word Break

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

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

関数

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で始まる単語はないため行き詰まります。つまり、最初に当てはまる単語が常に正しいとは限りません。

lock icon提出時に隠しテスト+21件

challenge icon

発展問題

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

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

ケース1

ケース2

ケース3

入力

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

期待値

true