算法笔记

292 阅读1分钟

题目1

JS找字符串中出现最多的字符
function findMaxCount (s) {
    var ss = [];
    var maxCount = 0;
    var max = '';
    
    while(s.length>0){
        var a = s.shift();
        if (ss[a]) {
            ss[a]++;
        } else {
            ss[a] = 1;
        }
    }
    
    for (var i in ss ) {
        if(maxCount < ss[i]) {
            maxCount = ss[i];
            max = i;
        }
    }
    
    return {maxCount, max};
}

题目2

打印九九乘法表
function multiplication () {
 var b = '';
 for(var i =1; i< 10; i++) {
    for(var j =1; j <= i; j++){
      var a = i * j;
      var s = ' '; 
      if(a<10){
       s += ' ';
      }
      b += i + '*' + j + '=' + a + s;
    }
    b += '\r\n';
 }
 console.log(b);
}

题目3

判断一个数是否时质数
function isPrime (num) {
    if (typeof num !== 'number' || !Number.isInteger(num)) {
        return false;
    }
    if (num === 2) {
        return true;
    }
    
    if(num < 2 || num % 2 === 0) {
        return false;
    }
    
    var numSqrt = Math.sqrt(num);
    
    for(var i = 3; i < numSqrt; num+=2) {
        if(num % i === 0) {
            return false;
        }
    }
    
    return true;
}