js中經(jīng)常出現(xiàn)的字符串算法

翻轉(zhuǎn)字符串

1.倒序 引入一個(gè)變量來保存

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.第二種方式直接將字符串逆轉(zhuǎn)判斷和沒逆轉(zhuǎn)之前的是否相同

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));

生成指定長(zhǎng)度的隨記字符串

//生成指定長(zhǎng)度的隨記字符串
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));

統(tǒng)計(jì)字符串中出現(xiàn)次數(shù)最多的字母

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  '出現(xiàn)的次數(shù)一樣多';

  }
    return '出現(xiàn)最多的字母: ' + maxKey+ '         出現(xiàn)的次數(shù): '+maxValue ;

  }
 
var str='abcd';
console.log(maxLetter(str));

未完待續(xù)。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容