VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > JavaScript教程 >
  • 567. 字符串的排列

567. 字符串的排列

 

查看原题  https://leetcode-cn.com/problems/permutation-in-string/

解题思路

  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<s1.length;j++){
 
arr2[s2.charCodeAt(i+j) - 97]++;
 
}
 
 
 
let t = 0;
 
for(t = 0;t<26;t++){
 
if(arr2[t] !== arr1[t]){
 
break;
 
}
 
}
 
 
 
if(t===26){
 
return true;
 
}
 
}
 
return false;
 
};
 
 

出处:https://www.cnblogs.com/xyq135/p/15734086.html


相关教程