题目:给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 。 来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutation-in-string
var checkInclusion = function(s1, s2) {
const len1 = s1.length;
const len2 = s2.length;
const count1 = new Array(26).fill(0);
const count2 = new Array(26).fill(0);
for (let i = 0; i < len1; i++) {
count1[s1[i].charCodeAt(0) - 97]++;
}
let start = 0;
for (let i = 0; i < len2; i++) {
count2[s2[i].charCodeAt(0) - 97]++;
while (start<=i&& count2[s2[start].charCodeAt(0) - 97]>count1[s2[start].charCodeAt(0) - 97]) {
count2[s2[start].charCodeAt(0) - 97]--;
start++;
}
if (count1.join('') == count2.join('')) {
return true;
}
}
return false;
};
`
|