Menu
CoddyTech

Minimum Window Substring

Bạn nhận được hai chuỗi, s và t. Hãy tìm chuỗi con ngắn nhất của s chứa mọi ký tự của t, tính cả ký tự lặp lại: nếu t có một chữ cái hai lần, chuỗi con phải có chữ cái đó ít nhất hai lần. Thứ tự không quan trọng, và chuỗi con cũng có thể chứa các ký tự khác.

Nếu có nhiều chuỗi con ngắn nhất, hãy trả về chuỗi con nằm bên trái nhất. Nếu không có chuỗi con nào chứa tất cả ký tự của t, hãy trả về chuỗi rỗng.

Hàm

minWindow(s: string, t: string) → string
sstring
chuỗi cần tìm kiếm trong đó
tstring
các ký tự mà cửa sổ phải chứa, kể cả ký tự lặp lại
Trả vềstring
chuỗi con ngắn nhất của s chứa tất cả t, nếu có nhiều chuỗi thì chọn chuỗi nằm ngoài cùng bên trái, hoặc chuỗi rỗng

Ràng buộc

  • 1 ≤ s.length ≤ 5 × 104
  • 1 ≤ t.length ≤ 104
  • s và t chỉ chứa các chữ cái tiếng Anh. Chữ hoa và chữ thường là các ký tự khác nhau.
  • Khi có nhiều chuỗi con cùng ngắn nhất, đáp án là chuỗi nằm ngoài cùng bên trái; nếu không có chuỗi nào, đáp án là "".

Ví dụ

Đầu vào
s = "mappingtheplan"t = "nap"
Đầu ra
"plan"
Giải thích
Cửa sổ đầu tiên từ bên trái chứa n, a và p là appin, gồm năm ký tự. plan chứa cả ba trong bốn ký tự, và không có đoạn liên tiếp nào gồm ba ký tự chứa đủ cả ba.
challenge icon

Câu hỏi mở rộng

Khi t có ít ký tự còn s dài, phần lớn s không bao giờ cần thiết. Bạn có thể giúp cửa sổ chỉ nhảy giữa các vị trí chứa ký tự của t không?

Đặt lại code
def minWindow(s, t):
    # Viết code ở đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

s = "mappingtheplan"
t = "nap"

Đầu ra mong đợi

"plan"