JS练习题①:求字符串中出现次数最多的字母和出现次数

来源:互联网 发布:插画网络课程 编辑:程序博客网 时间:2024/04/30 12:11

练习题的题目是,【给你一个字符串,寻找该字符串中出现次数最多的字母和出现次数。比如:"aadfdfdfxcvbvbeeeessscv"】

分享两个独特思路的JS代码

funOne:利用split方法,求出每个字母出现次数,比较次数求得最大值

function funOne(){    var string = "abaasdffggghhjjkkgfddsssss";    var countArr = new Array();    var i = 0;    while(string.charAt(0)){        // 结果是a=3,用split将字符串按照当前字母分段截取,可获得当前字母出现的次数     countArr[i] = string.charAt(0) + "=" + (string.split(string.charAt(0)).length - 1);     // 去掉字符串中的当前字母        string = string.split(string.charAt(0)).join("");        i++;    }    console.log('各个字母出现的次数是:' + countArr);         // 输出结果为:【<span role="presentation" class="objectBox objectBox-text ">a=3,b=1,s=6,d=3,f=3,g=4,h=2,j=2,k=2】</span>    for(var j = 0,temp=0; j < countArr.length; j++){        // 比较每一个字母出现的次数,一次循环求出最大值     if(temp <= Number(countArr[j].split("=")[1])){         temp = Number(countArr[j].split("=")[1]);            i = j;        }    }    console.log('出现次数最多的字母是:' + countArr[i]);    // 输出结果为:【<span role="presentation" class="objectBox objectBox-text ">s=6</span>】};
代码执行后,输出结果为:

各个字母出现的次数是:a=3,b=1,s=6,d=3,f=3,g=4,h=2,j=2,k=2

出现次数最多的字母是:s=6

需要说明的是,JS中的split() 方法用于把一个字符串分割成字符串数组。

funTwo:

function funTwo(){    // var str ="abaasdffggghhjjkkgfddsssss";    var str = "abcaaa";    var arr = str.split("");    var obj = {};    var xiaomo = [];    for(var i=0,j; j=arr[i]; i++){        if(!obj[j]){            obj[j] = 0;          <span style="font-family:Arial, Helvetica, sans-serif;">// 字符串中第一次出现的字母进入if分支</span>      }      xiaomo[++obj[j]] = j;    }    console.log('最多的字符串为:'+xiaomo[xiaomo.length-1]+",出现了"+(xiaomo.length-1)+'次');};
代码执行后,输出结果为:【最多的字符串为:s ,出现了6次】

0 0
原创粉丝点击