描述
找出s字符串中最小的窗口包含所有的t字符串种的字符
解决
2个索引值遍历
class Solution {
public:
string minWindow(string s, string t) {
int16_t arr[128] = {0};
size_t length = t.size();
size_t cnt = length;
for (int i = 0; i < length; ++i)
{
++arr[t[i]];
}
size_t st = 0, ed = 0, min_length = INT_MAX, zz = 0, ss = 0;
size_t length_s = s.size();
while (ed < length_s)
{
if (arr[s[ed]] > 0)
{
--cnt;
}
--arr[s[ed]], ++ed;
while (cnt == 0)
{
size_t temp = ed - st;
if (temp < min_length)
{
min_length = temp;
ss = st;
}
++arr[s[st]];
if (arr[s[st]] > 0)
cnt++;
++st;
}
}
// cout << min_length << endl;
if (min_length != INT_MAX)
return s.substr(ss, min_length);
return "";
}
};