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 ...
随机推荐
- angular1结合webpack构建工具
目录结构 webpack.config.js const { resolve } = require('path') const webpack = require('webpack') const ...
- 原生js实现雪花飘落效果
雪花飘落的效果实现步骤:1.使用setInterval定时器每800毫秒创建一个雪花:2.把每一个雪花作为参数传进动态下落的方法中即可. <style> *{padding: 0;marg ...
- spring boot 项目在启动时执行指定sql文件
参考博客: https://www.jianshu.com/p/88125f1cf91c 1. 启动时执行 当有在项目启动时先执行指定的sql语句的需求时,可以在resources文件夹下添加需要执行 ...
- SQL 出现18456
SQL Server 2008R2 18456错误解决方案 SQL Server 2008R2 18456错误解决方案 微软解释说,因密码或用户名错误而使身份验证失败并导致连接尝试被拒时,类似下面 ...
- 在crontab中执行脚本重要事项
crontab不能成功执行shell脚本的可能原因 crond进程不存在,该进程是crontab的守护进程,它必须存在才能让crontab正常使用: 系统时间不对: 环境变量的问题:crontab执行 ...
- win7 64位 安装java jdk1.8 ,修改配置环境变量
下载jdk1.8,下载地址:http://www.wmzhe.com/soft-30118.html 安装时有两个程序,都安装在同一个目录下. win7 64位 安装java jdk1.8 ,修改配置 ...
- IOS 照片浏览器总结(思想步骤)
1. 界面分析========================================1> 需要读取或修改属性的控件需要设置属性// 序号标签// 图片// 图片描述// 左边按钮// ...
- chpasswd
功能说明:从标准输入中读取一定格式的用户名.密码来批量更新用户的密码,其格式为 “用户名:密码”. 参数选项:-e 默认格式是明文密码,使用-e参数则需要加密的密码.
- 关于bootstrap-table服务端分页问题
昨天项目中涉及到了前端表格分页问题.数据一共有1万多条,所以选择了后端分页. 之前用的都是前端分页,第一次使用后端分页.网上也找到了一些例子,最后做出来了. 这里用的是bootstrap-table插 ...
- CodeForces 30C Shooting Gallery 简单dp
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/qq574857122/article/details/36944227 题目链接:点击打开链接 给定 ...