TGViewer
Swift | LeetCode Swift | LeetCode @easy_swift_task · 1.3K subscribers
Post #1327 107
Задача: 727. Minimum Window Subsequence
Сложность: hard

Если в строках s1 и s2 нет такого окна, которое покрывало бы все символы в s2, верните пустую строку "". Если таких окон минимальной длины несколько, возвращается окно с самым левым начальным индексом.

Пример:
Input: s1 = "abcdebdde", s2 = "bde"
Output: "bcde"


👨‍💻 Алгоритм:

1⃣Используйте два указателя для определения текущего окна.

2⃣Поддерживайте счетчики для символов в текущем окне и требуемых символов из s2.

3⃣Перемещайте правый указатель, чтобы найти подходящее окно, и левый указатель, чтобы минимизировать его.

😎 Решение:
func minWindow(_ s1: String, _ s2: String) -> String {
if s1.isEmpty || s2.isEmpty {
return ""
}

var dictT = [Character: Int]()
for char in s2 {
dictT[char, default: 0] += 1
}

let required = dictT.count
var l = 0, r = 0, formed = 0
var windowCounts = [Character: Int]()
var ans = (length: Int.max, start: 0, end: 0)
let s1Array = Array(s1)

while r < s1Array.count {
let char = s1Array[r]
windowCounts[char, default: 0] += 1

if let count = dictT[char], windowCounts[char] == count {
formed += 1
}

while l <= r && formed == required {
let char = s1Array[l]

if r - l + 1 < ans.length {
ans = (r - l + 1, l, r)
}

windowCounts[char, default: 0] -= 1
if let count = dictT[char], windowCounts[char]! < count {
formed -= 1
}

l += 1
}

r += 1
}

return ans.length == Int.max ? "" : String(s1Array[ans.start...ans.end])
}


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_swift_task
  1. Oct 11, 2026Задача: 1325. Delete Leaves With a Given Value Сложность: medium Дано корневое дерево root…
  2. Oct 7, 2026🔥 Скрытые вакансии с удаленной работой для iOS разработчика, которые нигде больше не публ…
  3. Oct 4, 2026Задача: 523. Continuous Subarray Sum Сложность: medium Дан целочисленный массив nums и цел…
  4. Oct 4, 2026Задача: 1329. Sort the Matrix Diagonally Сложность: medium Диагональ матрицы — это диагона…
  5. Oct 3, 2026Задача: 200. Number of Islands Сложность: medium Дана двумерная бинарная сетка размером m…
  6. Oct 2, 2026Задача: 246. Strobogrammatic Number Сложность: easy Дана строка num, представляющая собой…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →