/
githubmirror
/
LeetCode-Go
Обзор
Документация
Войти
/
githubmirror
/
LeetCode-Go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
leetcode/0076.Minimum-Window-Substring/76. Minimum Window Substring.go
38 строк
780 B
YDZ
modify solution 76
15 мар 2021, 07:14
15 мар 2021, 07:14
6cbaad1
Код
Авторство
О чём код?
package leetcode func minWindow(s string, t string) string { if s == "" || t == "" { return "" } var tFreq, sFreq [256]int result, left, right, finalLeft, finalRight, minW, count := "", 0, -1, -1, -1, len(s)+1, 0 for i := 0; i < len(t); i++ { tFreq[t[i]-'a']++ } for left < len(s) { if right+1 < len(s) && count < len(t) { sFreq[s[right+1]-'a']++ if sFreq[s[right+1]-'a'] <= tFreq[s[right+1]-'a'] { count++ } right++ } else { if right-left+1 < minW && count == len(t) { minW = right - left + 1 finalLeft = left finalRight = right } if sFreq[s[left]-'a'] == tFreq[s[left]-'a'] { count-- } sFreq[s[left]-'a']-- left++ } } if finalLeft != -1 { result = string(s[finalLeft : finalRight+1]) } return result }