文章目录
题意
思路
滑动窗口
代码
C++
class Solution {
public:
bool judge(int a[], int b[]) {
for (int i = 0; i < 26; i++)
if (a[i] != b[i])
return false;
return true;
}
bool checkInclusion(string s1, string s2) {
int a[26] = {0};
int b[26] = {0};
if (s1.size() > s2.size())
return false;
for (int i = 0; i < s1.size(); i++) {
a[s1[i] - 'a'] ++;
b[s2[i] - 'a'] ++;
}
if (judge(a, b)) {
return true;
}
for (int i = 0, j = s1.size(); j < s2.size(); i++, j++) {
b[s2[i] - 'a']--;
b[s2[j] - 'a']++;
if (judge(a,b))
return true;
}
return false;
}
};