判断字符串出现次数最多的字符 及 次数

分析

题目的意思大致就是找出每个字符出现的次数,然后比较大小。那么每个字符都应该对应它出现的次数。既然是一一对应的,那我们就想到用对象的keyvalue来储存字符和其出现的次数。

具体做法

  • 新建一个空对象obj
  • 遍历给定的字符串
  • 接下来就是最重要的 把字符作为key值,对应次数作为value添加给obj
  • 判断obj是否存在当前循环的字符,有则让value即次数++,否则把当前项作为key添加给obj
  • 然后是比较次数的大小。
  • 这时我们需要一个变量来储存objvalue值。
  • 声明一个变量num,并设置初始值为0
  • 遍历obj,比较其value值与num值的大小。大则将其value值赋给num,否则num值不变,从而找出最大的value值。
  • 这时我们需要一个数组来储存与最大的value值即num匹配的key值。因为这样的key值可能不止一个,所以用一个数组来储存。
  • 新建一个空数组keys
  • 遍历obj,判断与num匹配的key值,并添加在keys内。
  • 因为keys是个数组,需要用join转换成字符串。
  • 最后就可以返回出现次数最多的字符及次数了。
let str = "http://www.sxqyuming.com";
function word(str){let obj = {};let num = 0;let keys = [];for(var i=0;i<str.length;i++){let strs = str[i]if(!obj[strs]){obj[strs] = 1;}else{obj[strs]++}}for(var i in obj){if(num<obj[i]){num = obj[i]}}for(var i in obj){if(obj[i]==num){keys.push(i)}}return "出现次数最多的字符为"+keys.join('和')+",出现次数为"+num+"次。"
}
console.log(word(str))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/280040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何远程调试 MAUI blazor / Blazor Hybrid

我们知道浏览器模式下 Blazor 可以使用 F12 打开开发工具,调试js查看页面元素,那当 Maui Blazor 提示烦人的 an unhandled error has occurred 该怎么进行调试呢?1. VS 运行工程于 Debug 模式下,只要 BlazorWebview 控件处于焦点,直接按F12就可以打开开发工具了. 没有焦点就鼠…

笔记本触摸键盘驱动自动禁用_如何为iPad的蓝牙键盘禁用自动更正

笔记本触摸键盘驱动自动禁用The take-for-granted features we enjoy when using an on-screen keyboard—like auto-corrections and auto-capitalization–quickly become a hindrance if you’re using a physical keyboard with your iOS device. Let’s look at how to qu…

软考复盘:我的一些复习经验分享

大家好&#xff0c;我是Edison。最近全身乏力头疼&#xff0c;38.5度高烧&#xff0c;好在症状较轻&#xff0c;经过一天躺平加吃了芬必得&#xff08;简直神药&#xff09;后&#xff0c;退烧了&#xff0c;也不乏力了&#xff0c;也就趁娃娃睡觉时间跟大家分享一下软考的复习…

自定义注解在拦截器中为空_如何在Android中为特定联系人设置自定义铃声

自定义注解在拦截器中为空Everyone likes to know who’s calling before they actually pick up the phone, and the easiest way to achieve that is with custom ringtones for specific callers. That way, when your phone starts blasting “Cherry Pie,” you know it’…

对象的成员的初始化

变量类型&#xff1a; 1. 内置基本类型: int, char, bool, 2. 复合类型 &#xff08;compound type&#xff09;: 指针、引用、数组 3. 类类型&#xff1a; struct, class (string,vector等) 定义变量时&#xff1a; 一&#xff1a;进行“初始化”&#xff1a;可分为 ①指…

Golang面向API编程-interface(接口)

Golang面向API编程-interface&#xff08;接口&#xff09; 作者&#xff1a;尹正杰 版权声明&#xff1a;原创作品&#xff0c;谢绝转载&#xff01;否则将追究法律责任。 Golang并不是一种典型的面向对象编程&#xff08;Object Oriented Programming&#xff0c;OOP&#xf…

笔记本禁用键盘命令符_如何在Windows中禁用命令提示符和“运行”程序

笔记本禁用键盘命令符The Command Prompt and the Run program are pretty powerful tools in the Windows world. If you’d rather specific users on a computer not have access to them, it’s not too hard to do. 命令提示符和运行程序是Windows世界中非常强大的工具。 …

MySQL Date 函数

2019独角兽企业重金招聘Python工程师标准>>> MySQL 中最重要的内建日期函数&#xff1a; NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 EXTRACT() 返回日期/时间按的…

C# WPF This用法详解(经典)

概述this在C#中有多种用法&#xff0c;也比较常见&#xff0c;这节主要针对它常用的四种用法展开讲解.用法1:构造函数串联执行;用法2:通过this区分传参和类中全局的定义;用法3:方法扩展类;用法4:将对象作为参数传递;代码实例using System.Text;namespace Caliburn.Micro.Hello.…

前端node 和vue开发之环境搭建

下载nvm nodejs 的快捷键是配置后自动生成的 nvm 的 setting.txt配置 root: C:\dev\nvmpath: C:\dev\nodejsarch: 32proxy: root指向 nvm.exeroot: C:\dev\nvmpath: C:\dev\nodejs 配置环境变量 变量名 变量值 GIT_HOME C:\dev…

如何从特定位置开始分享YouTube视频

Tech tutorials that start with 3 minutes of “hey guys what’s up” are the worst. Get to the point! Here’s how you can bypass that nonsense when sharing a video with your friends. 最糟糕的是从3分钟的“嗨&#xff0c;大家好起来”开始的技术教程。 讲到重点&a…

解决git提交问题error: The requested URL returned error: 403 Forbidden while accessing

2019独角兽企业重金招聘Python工程师标准>>> git提交代码时&#xff0c;出现这个错误“error: The requested URL returned error: 403 Forbidden while accessing https” 解决方法&#xff1a; 编辑.git目录下的config文件即可。 vim .git/config [core] …

基于.NetCore开发博客项目 StarBlog - (24) 统一接口数据返回格式

1前言开发接口&#xff0c;是给客户端&#xff08;Web前端、App&#xff09;用的&#xff0c;前面说的RESTFul&#xff0c;是接口的规范&#xff0c;有了统一的接口风格&#xff0c;客户端开发人员在访问后端功能的时候能更快找到需要的接口&#xff0c;能写出可维护性更高的代…

如何将C# 7类库升级到C# 8?使用可空引用类型

这篇文章将介绍将C# 7类库升级到C# 8&#xff08;支持可空引用类型&#xff09;的一个案例。本案例中使用的项目Tortuga Anchor由一组MVVM风格的基类、反射代码和各种实用程序函数组成。之所以选择这个项目&#xff0c;是因为它很小&#xff0c;并且同时包含了惯用和不常用的C#…

android 设备名称_如何更改您的Android TV的设备名称

android 设备名称Android TV is Google’s attempt at taking over the living room, and with some units being available for under $99, it’s not unheard of for users to have more than one box. The problem is, when multiple devices identify themselves identical…

AD-查找符合指定条件的用户Get-User

以下服务器为Exchange 2010一、使用 Get-User 命令查找部门为IT的用户Get-User -ResultSize Unlimited | ? { $_.Department -Eq "IT" } | ft Name,Department二、查找注释为多行内容的指定用户如下图&#xff1a;注释Notes信息为多行要使用 match 和 (?*) 来做匹配…

目标检测算法之Fast R-CNN算法详解

在介绍Fast R-CNN之前我们先介绍一下SPP Net 一、SPP Net SPP&#xff1a;Spatial Pyramid Pooling&#xff08;空间金字塔池化&#xff09; 众所周知&#xff0c;CNN一般都含有卷积部分和全连接部分&#xff0c;其中&#xff0c;卷积层不需要固定尺寸的图像&#xff0c;而全连…

WPF-21 基于MVVM员工管理-01

接下来我们通过两节课程使用MVVM来开发一个简单的Demo&#xff0c;首先我们创建一个项目名称WPF-22-MVVM-Demo&#xff0c;目录结构如下&#xff1a;我们在Models文件下创建Employee类并让该类实现INotifyPropertyChanged接口&#xff0c;该类中定义编号、姓名和角色三个基本属…

qt 苹果应用程序_什么是苹果的电视应用程序,您应该使用它吗?

qt 苹果应用程序Apple’s TV app, which recently appeared on iOS devices and Apple TV, is meant to help users discover and watch shows across an increasingly expanding lineup of television channels, as well as iTunes movies and shows, in one central app. App…

细说flush、ob_flush的区别

ob_flush/flush在手册中的描述, 都是刷新输出缓冲区, 并且还需要配套使用, 所以会导致很多人迷惑… 其实, 他们俩的操作对象不同, 有些情况下, flush根本不做什么事情.. ob_*系列函数, 是操作PHP本身的输出缓冲区. 所以, ob_flush是刷新PHP自身的缓冲区. 而flush, 严格来讲, 这…