string getAnwser(string s, string t)
{
unordered_map<char,int> need,window; // window里包含need中的字符以及数量和need拥有的字符以及数量
for(auto i:t) need[i]++;
int left = 0, right = 0;
int valid = 0;int len = INT_MAX,start = 0;
while(right<s.size())
{
char c = s[right];
right++;
if(need.count(c))
{
window[c]++;
if (window[c]==need[c])
{
valid++; // 判断有几个字符达到需要的数量了
}
}
while(valid==need.size())
{
if(right-left <len )
{
start=left; //更新start位置
len = right-left;//更新长度
}
char d = s[left];
left++;
if(need.count(d))
{
if(window[d] == need[d])
{
valid--;
window[d]--;
}
}
}
}
return len == INT_MAX ? "":s.substr(left,len);
}