567. 字符串的排列


查看原题

解题思路

  1. 先求出s1里面各个字符的个数存储到数组arr1中
  2. 再遍历数组s2注意结束条件是 let i = 0;i<=s2.length - s1.length;i++,当个数少于s2.length - s1.length不会再有结果
  3. 统计s2中每个s1.length长度区间的各个字符的个数,与s1中的比较,如果元素个数都一样则符合条件返回true
  4. 直接返回false,说明前面没有符合条件的

代码

/**
 * @param {string} s1
 * @param {string} s2
 * @return {boolean}
 */
var checkInclusion = function(s1, s2) {
	let arr1 = new Array(26).fill(0);

	for (const item of s1){
		arr1[item.charCodeAt() - 97]++;
	}
	
	for(let i = 0;i<=s2.length - s1.length;i++){
		let arr2 = new Array(26).fill(0);

		for(let j = 0;j