Menu
CoddyTech

Minimum Window Substring

Vous recevez deux chaînes, s et t. Trouvez la plus courte sous-chaîne de s, une suite de caractères consécutifs, qui contient chaque caractère de t, en tenant compte des répétitions : si t contient deux fois une lettre, la sous-chaîne doit la contenir au moins deux fois. L’ordre n’a pas d’importance, et la sous-chaîne peut aussi contenir d’autres caractères.

Si plusieurs sous-chaînes ont la même longueur minimale, renvoyez celle qui se trouve le plus à gauche. Si aucune sous-chaîne de s ne contient tous les caractères de t, renvoyez une chaîne vide.

Fonction

minWindow(s: string, t: string) → string
sstring
la chaîne dans laquelle effectuer la recherche
tstring
les caractères que la fenêtre doit contenir, avec répétitions
Renvoiestring
la sous-chaîne de s la plus courte, puis la plus à gauche, qui contient tous les caractères de t, ou une chaîne vide

Contraintes

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s et t contiennent uniquement des lettres anglaises. Les lettres majuscules et minuscules sont des caractères différents.
  • Lorsqu’il existe plusieurs sous-chaînes les plus courtes, la réponse est celle qui se trouve le plus à gauche ; lorsqu’il n’en existe aucune, c’est "".

Exemples

Entrée
s = "mappingtheplan"t = "nap"
Sortie
"plan"
Explication
En lisant de gauche à droite, la première fenêtre qui contient un n, un a et un p est appin, longue de cinq caractères. plan, à la fin, contient les trois en quatre caractères, et aucune séquence de trois caractères ne les contient.

lock icon+17 tests cachés à la soumission

challenge icon

Pour aller plus loin

Lorsque t n’utilise que quelques lettres et que s est long, la majeure partie de s ne peut jamais être utile. Peux-tu faire en sorte que la fenêtre ne se déplace qu’entre les positions qui contiennent une lettre de t ?

Réinitialiser le code
def minWindow(s, t):
    # Écrivez le code ici
Cas de test

Cas 1

Cas 2

Cas 3

Entrée

s = "mappingtheplan"
t = "nap"

Attendu

"plan"