js面试之一个字符串中出现次数最多的字符是?出现几次?
最近在找面试题的时候发现了许多有趣的题目,在这里用随笔记录下~
关于“一个字符串中出现次数最多的字符...”这种问题在笔试题中出现的频率还是很高的,我自己也找到了几种方法处理
var str = "helloworld";
//1.将字符串打散为一个字符数组
var chars = str.split("");
//["h","e","l","l","o","w","o","r","l","d"]
//2.将打散的字符数组排序
chars.sort();
//["d","e","h","l","l","l","o","o","r","w"]
//3.将字符数组重新拼接成字符串
str = chars.join("");
//"dehllloorw"
//4.查找出字符串中紧挨的一组相同字母
var arr = str.match(/([a-z])\1*/g);
//["d","e","h","lll","oo","r","w"]
//5.按每组字母的个数降序排列
arr.sort(function(a,b){return b.length - a.length;});
//["lll","oo","d","e","h","r","w"]
var c = arr[0][0];
var n = arr[0].length;
console.log(`出现次数最多的是${c},共出现${n}次`);
作为一个程序员,可以说对注释真是又爱又恨了~~~当然,一种解决方法肯定是不能满足我的(#^.^#),下面是我想到的另一种解决方法。
var str = "helloworld";
//定义一个空关联数组
var arr = [];
//遍历字符串中每一个元素
for (var i=0;i<str.length;i++) {
//将key当做字符串数组的当前字母
var key = str[i];
//如果关联数组中没有下标为key的元素
if(arr[key]===undefined){
//给关联数组中添加下标为key的元素,初始值为1
arr[key] = 1;
}else{
//如果关联数组中存在下标为key的元素,则将初始值加1
arr[key]++;
}
}
var c,n;
//遍历关联数组
for (var key in arr) {
//首次比较,把第一个字母及其个数作为当前数组的最多字母和个数
if(c===undefined){
c = key;//字母
n = arr[key];//个数
}else {
//让后面每个字母的个数与当前字母个数最多的相比
if(arr[key]>n){//如果后面字母的个数比当前字母的个数多
c = key;//则把最多个数字母赋值给c
n = arr[key];//把最多字母的个数赋值给n
}
}
}
console.log(`出现次数最多的字母是${c},共出现${n}次`);
看到这里,难免想念叨一下关联数组和索引数组的差别:
笼统的说,索引数组就是下标为序数(就是0...什么的),关联数组就是下标为字符串...不知道这样理解对不对~不对请指出哈~
各位大神有什么其他方法不麻烦的话给小白的我学习学习下~(*❦ω❦)
js面试之一个字符串中出现次数最多的字符是?出现几次?的更多相关文章
- JS查找字符串中出现次数最多的字符
本文给大家带来两种js中查找字符串中出现次数最多的字符,在这两种方法中小编推荐使用第二种,对js查找字符串出现次数的相关知识感兴趣的朋友一起看看吧 在一个字符串中,如 'zhaochucichuz ...
- js判断一个字符串中出现次数最多的字符及次数
最近面试总是刷到这个题,然后第一次的话思路很乱,这个是我个人思路 for循环里两个 if 判断还可以优化 var maxLength = 0; var maxStr = ''; var count = ...
- 使用 Java 查找字符串中出现次数最多的字符以及出现的次数?
使用 Java 查找字符串中出现次数最多的字符以及出现的次数? import java.util.HashMap; import java.util.Map; public class TestStr ...
- Java求字符串中出现次数最多的字符
Java求字符串中出现次数最多的字符 [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/51933611 Java ...
- JavaScript判断字符串中出现次数最多的字符,并统计其次数
要求: 输出一个给定字符串``中出现次数最多的字符,并统计其次数. 实现思路: 利用charA()遍历这个字符串 把每个字符都存储给对象,如果对象没有该属性,就先幅值为1,如果存在了就+1 遍历对象, ...
- JS-取出字符串中重复次数最多的字符并输出
/** 取出字符串中重复字数最多的字符 */ var words = 'sdfghjkfastgbyhnvdstyaujskgfdfhlaa'; //创建字符串 var word, //单个字符 le ...
- js常会问的问题:找出字符串中出现次数最多的字符。
一.循环obj let testStr = 'asdasddsfdsfadsfdghdadsdfdgdasd'; function getMax(str) { let obj = {}; for(le ...
- js 计算字符串中出现次数最多的字符及其次数
方法一: var str="sdfseresssssdssdfsa"; var arr=[]; var max=0; var maxk; for(var i=0;i<str. ...
- js学习笔记之字符串统计出现次数最多的字符
1.方法:把字符串中字符替换为空,并和之前的字符串的长度相减,得到已经被替换的字符的数量,依次比较获得出现次数最多的字符 var str ="adadfdfseffserfefsefseef ...
随机推荐
- swftools 将pdf转换swf常见问题说明
swftools将PDF转成swfSWFTools提供了一系列将各种文件转成swf的工具: font2swf.exe gif2swf.exe jpeg2swf.exe pdf2swf.exe png2 ...
- 【Leetcode】【Easy】Climbing Stairs
You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb ...
- 调查UIRecorder 测试报告的CI(集成)实现方式
以下内容来自uirecorder官网: 如何接入Jenkins? 添加命令 source ./install.sh source ./run.sh 添加报告 JUnit: reports/index. ...
- 生产环境rac无法启动
节点二crs无法启动,查看启动日志:ohasd.log位置在/u01/app/11.2.0/grid/log/host01/ohasd/ohasd.log另外root.sh的log在rootcrs_X ...
- 字符串相关函数-strcpy()与strcmp()
一些小问题,避免出现低级错误. 1.strcmp(s1,s2): 字符串指针不见'\0'不回头,这个常在与单个字符作比较时写着写着就忘了. char* p_ch1="this is an e ...
- SAP C4C里如何实现Sales Unit和Seller的自动determination
先看一个效果,我录了一个视频,发布在视频网站上,大家可以先看看SAP Cloud for Customer里启用了partner 自动determination后的效果. 在SAP Cloud for ...
- oozie调用java实例------shell action
Oozie提供了一个方便的方式来运行任何命令.这可能是Unix命令,Perl或Python脚本,甚至java程序都可以通过Unix shell调用.shell命令运行在任意的Hadoop集群节点上,并 ...
- OC typedef(起别名)
// #define Integer int // 给基本数据类型起别名 void test() { typedef int Integer; typedef Integer MyInteger; t ...
- cocos2d-x3.1 下实现相似Android下ExpandListView的效果
在左Android開始有SDK提供ExpandListView的可扩展列表,而在iOS下有很多第三方做好的Demo,这里我是參照iOS下RATreeView这个第三方库实现的. 本文代码:须要在3.1 ...
- W5100与MCU的连接方式
W5100与MCU的连接方式 W5100与MCU的连接方式主要有直接总线连接.间接总线连接.SPI总线连接这三种连接方法,不同的连接方法适应于不同的场合,应该按需选择最恰当的连接方式. 1)直接总线连 ...