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

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

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

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

Тест #1

Тест #2

Тест #3

Аргументы

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

Ожидаемый вывод

true