当前位置: 首页 > news >正文

查找字符串中出现最多的字符

方法一:利用js的split和join方法

 1 function foo(str){
 2     var max = 0;
 3     var char = []; // 存放出现次数最多的字符
 4     while(str){
 5         var head = str.charAt(0);
 6         var arr = str.split(head);
 7         var num = str.length - arr.join('').length;
 8         if(num > max){
 9             max = num;
10             char.length = 0;
11             char.push(head);
12         }else if(num === max){
13             char.push(head);
14         }
15         str = arr.join('');
16     }
17     return {maxNum:max,chars:char};
18 
19 }

方法二:此处要用对象key查找而不是用下标遍历,前者时间是1后者是n

 1 function foo(str){
 2     let result = [];
 3     for(let i = 0; i < str.length; i++){
 4         if(result[str[i]]){
 5             result[str[i]] += 1;
 6         }else{
 7             result.push(str[i]);
 8             result[str[i]] = 1;
 9         }
10     }
11 
12     let max = 0;
13     let char = [];
14     for(let key in result){
15         if(result[key] > max){
16             char.length = 0;
17             max = result[key];
18             char.push(key);
19         }else if(result[key] === max){
20             char.push(key);
21         }
22     }
23 
24     retrun {maxNum:max,chars:char};
25 
26 }

 

转载于:https://www.cnblogs.com/171220-barney/p/8869685.html

相关文章:

  • xshell 4 中文乱码问题解决
  • Html的空格显示
  • Java基础-Date类常用方法介绍
  • 910
  • 区块链研习 | DAG网络:Blockless无区块概念将解决区块链交易性能问题
  • jQuery 自制上传头像插件-附带Demo实例(ajaxfileupload.js第三弹)
  • 干货 | 手把手教你用python实现新浪微博模拟登陆,超详细
  • 百度编辑器ueditor 在vs2008中的使用方法
  • cordova 建立工程生成apk
  • 回流、重绘及其优化
  • JMeter学习参数化User Defined Variables与User Parameters
  • LAMP架构介绍、MySQL和MariaDB介绍、MySQL安装
  • PL/SQL之--变量
  • 面向Android的Tesseract工具
  • java性能优化读书笔记(1)
  • 【css3】浏览器内核及其兼容性
  • Angular 2 DI - IoC DI - 1
  • Angular6错误 Service: No provider for Renderer2
  • AngularJS指令开发(1)——参数详解
  • fetch 从初识到应用
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JS数组方法汇总
  • Python进阶细节
  • React16时代,该用什么姿势写 React ?
  • Theano - 导数
  • vue-cli在webpack的配置文件探究
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 消息队列系列二(IOT中消息队列的应用)
  • 小程序01:wepy框架整合iview webapp UI
  • 在weex里面使用chart图表
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • #传输# #传输数据判断#
  • %check_box% in rails :coditions={:has_many , :through}
  • (03)光刻——半导体电路的绘制
  • (Python) SOAP Web Service (HTTP POST)
  • (二)丶RabbitMQ的六大核心
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (一) storm的集群安装与配置
  • (转)项目管理杂谈-我所期望的新人
  • *p++,*(p++),*++p,(*p)++区别?
  • . ./ bash dash source 这五种执行shell脚本方式 区别
  • .naturalWidth 和naturalHeight属性,
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .net core webapi Startup 注入ConfigurePrimaryHttpMessageHandler
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net 后台导出excel ,word
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • .net反编译工具
  • .net下的富文本编辑器FCKeditor的配置方法
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • .vue文件怎么使用_我在项目中是这样配置Vue的
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [20160902]rm -rf的惨案.txt