Menu
CoddyTech

Word Break

Otrzymujesz ciąg znaków s i listę słów wordDict. Zwróć true, jeśli możesz podzielić s na części tak, aby każda część była słowem z wordDict, a w przeciwnym razie zwróć false.

Części zachowują swoją kolejność i łącznie wykorzystują każdą literę z s dokładnie raz. Słowo może być użyte dowolną liczbę razy, a nie musisz używać każdego słowa.

Funkcja

wordBreak(s: string, wordDict: string-array) → boolean
sstring
ciąg znaków do podzielenia na słowa
wordDictstring-array
słowa, których możesz używać, tak często, jak chcesz
Zwracaboolean
prawda, jeśli s można podzielić na słowa ze słownika, w przeciwnym razie fałsz

Ograniczenia

  • 1 ≤ s.length ≤ 300
  • 1 ≤ wordDict.length ≤ 1000
  • 1 ≤ wordDict[i].length ≤ 20
  • s i każde słowo zawiera wyłącznie małe litery alfabetu angielskiego.
  • Słowa w wordDict są różne.

Przykłady

Wejście
s = "sunflowerseed"wordDict = ["sun", "flow", "flower", "seed"]
Wyjście
true
Wyjaśnienie
Podziel to na sun, flower, seed. Wybranie flow po sun donikąd nie prowadzi, ponieważ żadne słowo nie zaczyna się od pozostałego er, więc pierwsze pasujące słowo nie zawsze jest właściwe.

lock icon+21 ukrytych testów przy wysłaniu

challenge icon

Pytanie dodatkowe

Zwróć najmniejszą liczbę słów, których można użyć w poprawnym podziale, lub -1, jeśli ciągu s nie da się podzielić. Co zmienia się w tabeli i czy zmienia się czas działania?

Zresetuj kod
def wordBreak(s, wordDict):
    # Wpisz tutaj kod
Przypadki testowe

Przypadek 1

Przypadek 2

Przypadek 3

Wejście

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

Oczekiwane

true