一对一专属定制方案衡阳seo
目录
一:题目
二:算法原理分析
三:代码实现
一:题目
题目链接:76. 最小覆盖子串 - 力扣(LeetCode)
二:算法原理分析
三:代码实现
class Solution {
public:string minWindow(string s, string t){int len = INT_MAX;int ret = 0;int hash1[128];//统计字符t出现的频次int hash2[128];//统计窗口内出现的频次int kinds = 0;//统计有效字符的种类for (auto e : t){if(hash1[e]++ == 0)kinds++;}for (int left = 0, right = 0, cont = 0; right < s.size(); right++){//进窗口//维护cont:有效字符的种类if (++hash2[s[right]] == hash1[s[right]])cont++;//判断while (cont == kinds){if(right-left+ 1 < len){len = right - left +1;ret = left;}//出窗口 + 维护contif (hash2[s[left]]-- == hash1[s[left]])cont--;left++;}}string st;if (len == INT_MAX)return st;st = s.substr(ret,len);return st;}
};