Menu
CoddyTech

Minimum Window Substring

Você recebe duas strings, s e t. Encontre a substring mais curta de s, uma sequência de caracteres consecutivos, que contenha cada caractere de t, contando as repetições: se t contiver uma letra duas vezes, a substring deverá contê-la pelo menos duas vezes. A ordem não importa, e a substring também pode conter outros caracteres.

Se várias substrings tiverem o mesmo comprimento mínimo, retorne a mais à esquerda. Se nenhuma substring de s contiver todos os caracteres de t, retorne uma string vazia.

Função

minWindow(s: string, t: string) → string
sstring
a string na qual pesquisar
tstring
os caracteres que a janela deve conter, incluindo repetições
Retornastring
a substring mais curta e, em caso de empate, mais à esquerda de s que contém todos os caracteres de t, ou uma string vazia

Restrições

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s e t contêm apenas letras do alfabeto inglês. Letras maiúsculas e minúsculas são caracteres diferentes.
  • Quando várias substrings forem as mais curtas, a resposta será a que aparece mais à esquerda; quando nenhuma existir, será "".

Exemplos

Entrada
s = "mappingtheplan"t = "nap"
Saída
"plan"
Explicação
Lendo da esquerda para a direita, a primeira janela que contém um n, um a e um p é appin, com cinco caracteres. plan, no final, contém os três em quatro caracteres, e nenhuma sequência de três caracteres os contém.

lock icon+17 testes ocultos ao enviar

challenge icon

Para ir além

Quando t usa apenas algumas letras e s é longo, a maior parte de s nunca pode importar. Você consegue fazer a janela saltar apenas entre as posições que contêm uma letra de t?

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

Caso 1

Caso 2

Caso 3

Entrada

s = "mappingtheplan"
t = "nap"

Esperado

"plan"