美文网首页程序员让前端飞
js中经常出现的字符串算法

js中经常出现的字符串算法

作者: 雪萌萌萌 | 来源:发表于2017-08-23 23:02 被阅读0次

    翻转字符串

    1.倒序 引入一个变量来保存

    function reverse(str){
      var newStr='';
      for(var i=str.length-1;i>=0;i--){
        newStr+=str[i];
           //newStr+=str.charAt(i);
      }
      return newStr;
    
    }
    var str='12345';
    console.log(reverse(str));
    

    2.Array.Reverse

    function reverse(str){
      return str.split('').reverse().join('');
    
    }
    var str='12345';
    console.log(reverse(str));
    

    3.遍历一半字符串

    function reverse(str){
        var arr=str.split('');
      for(var i=0;i<=Math.floor(arr.length/2);i++){
        var temp;
        var len =arr.length;
        temp=arr[i];
        arr[i] = arr[len-i-1];
        arr[len-i-1]=temp;
    
      }
      var newstr=arr.join('');
      return newstr;
    
    }
    var str='12345$$';
    

    判断是否为回文字符串

    1.第一种方式 递归

    //判断是否为回文字符串并忽略大小写和其他字符
    function Palindrome(str){
      //处理大小写和其他字符
      // var reg=/[A-Za-z0-9]/g;
      // var str=str.match(reg);
      var reg=/[\W]/g;
      var str=str.replace(reg,'').toLowerCase();
      if(str.length===0){
        return true;
      }
      if(str.charAt(0)!=str.charAt(str.length-1)){
        return false;
      }
      return Palindrome(str.slice(1,str.length-1));
    
    }
    var str='Leel$$$';
    var ispalindrome=Palindrome(str);
    console.log(ispalindrome);
    

    2.第二种方式直接将字符串逆转判断和没逆转之前的是否相同

    function checkPalindrom(str) { 
        var reg=/[\W]/g;
        var str=str.replace(reg,'').toLowerCase(); 
        return str == str.split('').reverse().join('');
    }
    var str='Leel$$$';
    console.log(checkPalindrom(str));
    

    生成指定长度的随记字符串

    //生成指定长度的随记字符串
    function random(n){
        var str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
        var temp='';
        console.log(str.charAt(Math.round(Math.random()*str.length)));
        for(var i=0;i<n;i++){
          temp+=str.charAt(Math.round(Math.random()*str.length));
        }
        return temp;
    }
    console.log(random(10));
    

    统计字符串中出现次数最多的字母

    function maxLetter(str){
      if(str.length==0){
        return str;
      }
      var letterObj={};
       var maxValue=1;
      var maxKey='';
      for(var i=0;i<str.length;i++){
        if(!letterObj[str.charAt(i)]){
          letterObj[str.charAt(i)]=1;
            if(letterObj[str.charAt(i)]>maxValue){
            maxValue =letterObj[str.charAt(i)];
            maxKey=str.charAt(i);
            }
    
        }else{
          letterObj[str.charAt(i)] +=1;
          if(letterObj[str.charAt(i)]>maxValue){
          maxValue =letterObj[str.charAt(i)];
          maxKey=str.charAt(i);
        }
        }
      }
      if(maxKey==''){
        return  '出现的次数一样多';
    
      }
        return '出现最多的字母: ' + maxKey+ '         出现的次数: '+maxValue ;
    
      }
     
    var str='abcd';
    console.log(maxLetter(str));
    

    未完待续。。。

    相关文章

      网友评论

        本文标题:js中经常出现的字符串算法

        本文链接:https://www.haomeiwen.com/subject/vczjdxtx.html