Menu
CoddyTech

Word Break

Дана строка s и список слов wordDict. Верните true, если строку s можно разбить на части так, чтобы каждая часть была словом из wordDict, и false в противном случае.

Части сохраняют исходный порядок и вместе используют каждую букву строки s ровно один раз. Любое слово можно использовать любое количество раз, и не обязательно использовать каждое слово.

Функция

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. Если взять flow после sun, это ни к чему не приведёт, поскольку ни одно слово не начинается с оставшегося er, поэтому первое подходящее слово не всегда оказывается правильным.

lock icon+21 скрытых тестов при отправке

challenge icon

Дополнительный вопрос

Верните минимальное число слов, которое можно использовать для допустимого разбиения, или -1, если строку s нельзя разбить. Что изменится в таблице и изменится ли время выполнения?

Сбросить код
def wordBreak(s, wordDict):
    # Напишите код здесь
Тестовые случаи

Случай 1

Случай 2

Случай 3

Ввод

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

Ожидается

true