Menu
CoddyTech

Minimum Window Substring

Du erhältst zwei Zeichenfolgen, s und t. Finde die kürzeste Teilzeichenfolge von s, also eine Folge aufeinanderfolgender Zeichen, die jedes Zeichen von t enthält, wobei Wiederholungen mitgezählt werden: Wenn t einen Buchstaben zweimal enthält, muss die Teilzeichenfolge ihn mindestens zweimal enthalten. Die Reihenfolge spielt keine Rolle, und die Teilzeichenfolge darf auch andere Zeichen enthalten.

Wenn mehrere Teilzeichenfolgen dieselbe kürzeste Länge haben, gib die am weitesten links stehende zurück. Wenn keine Teilzeichenfolge von s alle Zeichen von t enthält, gib eine leere Zeichenfolge zurück.

Funktion

minWindow(s: string, t: string) → string
sstring
die Zeichenkette, in der gesucht werden soll
tstring
die Zeichen, die das Fenster enthalten muss, einschließlich Wiederholungen
Gibt zurückstring
die kürzeste und dann am weitesten links stehende Teilzeichenfolge von s, die alle Zeichen von t enthält, oder eine leere Zeichenfolge

Einschränkungen

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s und t enthalten nur englische Buchstaben. Groß- und Kleinbuchstaben sind unterschiedliche Zeichen.
  • Wenn mehrere Teilzeichenfolgen am kürzesten sind, ist die Antwort die am weitesten links stehende; wenn keine existiert, ist sie "".

Beispiele

Eingabe
s = "mappingtheplan"t = "nap"
Ausgabe
"plan"
Erklärung
Von links gelesen ist das erste Fenster, das ein n, ein a und ein p enthält, appin und fünf Zeichen lang. plan am Ende enthält alle drei in vier Zeichen, und kein Abschnitt aus drei Zeichen enthält sie.

lock icon+17 versteckte Tests beim Einreichen

challenge icon

Weiterführende Frage

Wenn t nur wenige Buchstaben enthält und s lang ist, können die meisten Teile von s nie relevant sein. Kannst du dafür sorgen, dass das Fenster nur zwischen den Positionen springt, an denen ein Buchstabe aus t steht?

Code zurücksetzen
def minWindow(s, t):
    # Schreibe hier den Code
Testfälle

Fall 1

Fall 2

Fall 3

Eingabe

s = "mappingtheplan"
t = "nap"

Erwartet

"plan"