Menu
CoddyTech

Word Break

Você recebe uma string s e uma lista de palavras wordDict. Retorne true se puder dividir s em partes de modo que cada parte seja uma palavra de wordDict, e false caso contrário.

As partes mantêm a ordem e, juntas, usam cada letra de s exatamente uma vez. Uma palavra pode ser usada quantas vezes quiser, e você não precisa usar todas as palavras.

Função

wordBreak(s: string, wordDict: string-array) → boolean
sstring
a string a ser dividida em palavras
wordDictstring-array
as palavras que você pode usar, cada uma quantas vezes quiser
Retornaboolean
true se s puder ser dividido em palavras do dicionário, false caso contrário

Restrições

  • 1 ≤ s.length ≤ 300
  • 1 ≤ wordDict.length ≤ 1000
  • 1 ≤ wordDict[i].length ≤ 20
  • s e cada palavra contém apenas letras minúsculas do inglês.
  • As palavras em wordDict são todas diferentes.

Exemplos

Entrada
s = "sunflowerseed"wordDict = ["sun", "flow", "flower", "seed"]
Saída
true
Explicação
Divida como sun, flower, seed. Pegar flow depois de sun não leva a lugar nenhum, pois nenhuma palavra começa com o er que sobra, então a primeira palavra que se encaixa nem sempre é a certa.

lock icon+21 testes ocultos ao enviar

challenge icon

Para ir além

Retorne o menor número de palavras que uma segmentação válida pode usar, ou -1 se s não puder ser segmentada. O que muda na tabela, e o tempo de execução muda?

Redefinir código
def wordBreak(s, wordDict):
    # Escreva o código aqui
Casos de teste

Caso 1

Caso 2

Caso 3

Entrada

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

Esperado

true