LeetCode 567. 字符串的排列
原题链接
简单
作者:
MeowRain
,
2024-01-12 18:21:52
,
所有人可见
,
阅读 40
class Solution {
public:
bool checkInclusion(string t,string s) {
unordered_map<char,int> need,window;
for(char c:t) {
need[c]++;
}
int left = 0,right = 0;
int valid = 0;
while(right < s.size()){
char c = s[right];
right++;
if(need.count(c)){
window[c]++;
if(window[c] == need[c]){
valid++;
}
}
while(right - left >= t.size()){
if(valid == need.size()){
return true;
}
char d = s[left];
left++;
if(need.count(d)){
if(window[d] == need[d]){
valid--;
}
window[d]--;
}
}
}
return false;
}
};