The most easy sliding window solution
\nstring minWindow(string s, string t) {\n        string res = "";\n        if(s.size() < t.size()) return res;\n        unordered_map<char, int> umap;\n       
```\nstring minWindow(string s, string t) {\n        string res = "";\n        if(s.size() < t.size()) return res;\n        unordered_map<char, int> umap;\n        for(auto it: t) umap[it]++;\n        int i=0, j=0;\n        int length = INT_MAX, count = umap.size();\n        while(j<s.size()){\n            if(umap.find(s[j])!=umap.end()){\n                umap[s[j]]--;\n                if(umap[s[j]]==0) count--;\n            }\n            if(count > 0) j++;\n            else if(count == 0){\n                while(count==0){\n                    if(umap.find(s[i])!=umap.end()){\n                        if(j-i+1 < length){\n                            length = j-i+1;\n                            res = s.substr(i, j-i+1);\n                        }\n                        umap[s[i]]++;\n                        if(umap[s[i]] > 0) count++;\n                    }\n                    i++;\n                }\n                j++;\n            }\n        }\n        return res;\n    }\n```
['C', 'Sliding Window', 'C++']