Menu
CoddyTech

Minimum Window Substring

İki dizge alırsın: s ve t. t'deki her karakteri tekrar sayısını da dikkate alarak içeren s'nin en kısa alt dizgesini bul: t bir harfi iki kez içeriyorsa, alt dizge de o harfi en az iki kez içermelidir. Sıralama önemli değildir ve başka karakterler de bulunabilir.

En kısa birkaç alt dizge varsa, en soldakini döndür. t'deki tüm karakterleri içeren bir alt dizge yoksa, boş bir dizge döndür.

Fonksiyon

minWindow(s: string, t: string) → string
sstring
içinde arama yapılacak dize
tstring
pencerenin içermesi gereken karakterler, tekrarlar da dahil
Döndürürstring
s'nin, t'nin tamamını içeren en kısa ve ardından en soldaki alt dizisi ya da boş bir dize

Kısıtlar

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s ve t yalnızca İngilizce harfler içerir. Büyük ve küçük harfler farklı karakterlerdir.
  • En kısa alt dizelerden birden fazlası varsa, yanıt soldaki olur; hiçbiri yoksa, "" olur.

Örnekler

Girdi
s = "mappingtheplan"t = "nap"
Çıktı
"plan"
Açıklama
Soldan başlayarak n, a ve p harflerini içeren ilk pencere, beş karakterlik appin'dir. plan bu üçünü dört karakterde içerir ve üç karakterlik hiçbir dizi bunların hepsini içermez.
challenge icon

Ek soru

t az sayıda harften oluşup s uzun olduğunda, s'nin büyük kısmı hiçbir zaman önemli olmaz. Pencerenin yalnızca t'deki bir harfi içeren konumlar arasında atlamasını sağlayabilir misin?

Kodu sıfırla
def minWindow(s, t):
    # Kodu buraya yazın

Test #1

Test #2

Test #3

Argümanlar

s = "mappingtheplan"
t = "nap"

Beklenen Çıktı

"plan"