Menu
CoddyTech

Minimum Window Substring

İki dizge alırsın: s ve t. s içindeki, t’deki her karakteri tekrarları sayarak içeren en kısa alt dizgeyi, yani art arda gelen karakterlerden oluşan bir diziyi bul: t bir harfi iki kez içeriyorsa alt dizge de bu harfi en az iki kez içermelidir. Sıralama önemli değildir ve alt dizge başka karakterler de içerebilir.

Birkaç alt dizgenin uzunluğu aynı ve en kısaysa, en soldakini döndür. s içindeki hiçbir alt dizge t’deki tüm karakterleri içermiyorsa boş bir dizge döndür.

Fonksiyon

minWindow(s: string, t: string) → string
sstring
içinde arama yapılacak dizge
tstring
pencerenin tekrarlar da dahil olmak üzere içermesi gereken karakterler
Döndürürstring
t'nin tüm karakterlerini içeren, s'nin en kısa ve ardından en soldaki alt dizgesi veya 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.
  • Birkaç alt dizge en kısaysa, yanıt soldaki olur; hiçbiri yoksa "" olur.

Örnekler

Girdi
s = "mappingtheplan"t = "nap"
Çıktı
"plan"
Açıklama
Soldan okununca, n, a ve p içeren ilk pencere, beş karakter uzunluğundaki appin dizisidir. Sondaki plan, üçünü de dört karakterde içerir ve üç karakterlik hiçbir dizi bunların hepsini içermez.

lock iconGönderirken +17 gizli test

challenge icon

Ek soru

t yalnızca birkaç harf kullanırken ve s uzun olduğunda, s'nin büyük bir 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 durumları

Durum 1

Durum 2

Durum 3

Girdi

s = "mappingtheplan"
t = "nap"

Beklenen

"plan"