首页 > 其他分享 >判断一个字符串中出现次数最多的字符,统计这个次数

判断一个字符串中出现次数最多的字符,统计这个次数

时间:2023-11-16 10:45:24浏览次数:37  
标签:字符 obj max var 次数 key 字符串

var str = "stiabsstringapbs";
 var obj = {};
 for (var i = 0; i < str.length; i++) {
          var key = str[i];
               if (!obj[key]) {
                   obj[key] = 1;
              } else {
                   obj[key]++;
                }
  }
  var max = -1;
  var max_key = "";
  var key;
  for (key in obj) {
           if (max < obj[key]) {
                     max = obj[key];
                     max_key = key;
         }
 }
   alert("max:"+max+" max_key:"+max_key);

关于上述代码说法错误的是( )。
A
obj是用来统计字符数量的

B
代码所实现的功能是:统计字符串中,所有字符的数量

C
max表示最大字符,key表示字符

D
代码实现功能是:判断一个字符串中出现次数最多的字符,统计这个次数

正确答案:BC

var str = "stiabsstringapbs";                 //定义字符串
 var obj = {};                                //定义对象
 for (var i = 0; i < str.length; i++) {       //遍历字符串
          var key = str[i];                   //存储字符
               if (!obj[key]) {               //若对象中不存在该key,初始化为1
                   obj[key] = 1;
              } else {                        //若对象中存在该key,则数值加1
                   obj[key]++;
                }
  }                               
/*第一个for循环结束得到每个字符数量的对象,大概下面这鸟样
obj={
    s:4,
    t:2,
    i:2,
    ...
}*/
  var max = -1;                               //初始化最大数量,最大数量字符
  var max_key = "";
  var key;
  for (key in obj) {                          //遍历obj对象,获得字符最大数量及对应字符
           if (max < obj[key]) {
                     max = obj[key];
                     max_key = key;
         }
 }
   alert("max:"+max+" max_key:"+max_key);

A. 正确。obj是用来统计字符数量的,每一个key就是对应的字符,对应的value就是这个字符出现的次数。

B. 错误。因为最后输出的是max和max_key。如果是统计字符串中,所有字符的数量,要对obj所含有的所有属性进行统计。

C. 错误。max统计的一个字符串中出现次数最多的字符的次数,而key就是这个字符。

D. 正确。obj对象进行字符出现次数的统计,循环进行出现次数最多的字符的判断和保存。所以代码实现功能是:判断一个字符串中出现次数最多的字符,统计这个次数

标签:字符,obj,max,var,次数,key,字符串
From: https://www.cnblogs.com/longmo666/p/17835691.html

相关文章

  • setTimeout可以将字符串当成代码执行,类比eval函数。当遇到setTimeout或者SetInterval,
    请问以下JS代码的输出顺序是?letdate=newDate()setTimeout(()=>{console.log('1')},2000)setTimeout('console.log(2)',1000);setTimeout(function(){console.log('3')},1500);while((newDate()-date)<3000){}A报错B......
  • Java字符串、字符与数字之间的相互转换
    一、数字转字符串//将整个数字转化为字符串inti=456;//方法一Stringstr1=Integer.toString(i);System.out.println(str1);//方法二Stringstr2=i+"";System.out.println(str2)二、字符串转数字//整数方法一Stringstr="123";intnum1=Integer.parseInt(str);/......
  • 453. 最小操作次数使数组元素相等
    (453.最小操作次数使数组元素相等-力扣(LeetCode))https://leetcode.cn/problems/minimum-moves-to-equal-array-elements/description/题目描述给你一个长度为n的整数数组,每次操作将会使n-1个元素增加1。返回让数组所有元素相等的最小操作次数。 示例1:输入:nums......
  • 字符串分割匹配
    InfantFeedingTube-Itisusedforneonatesandpaediatricnutritionalfeeding,FoleyBalloonCatheter(GPCFoleyBalloonCatheter)-Itisaurinarytractcatheterusedforshorttermurinedrainage,SafetyIVCannula(GPCSafetyIVCannula)-SafetyIVCannula......
  • 将字符串转换为uniqueidentifier时失败
    MicrosoftSQLServerManagementStudioExpress不支持表字段uniqueidentifier插入未指定值启用默认值。未指定时会报“将字符串转换为uniqueidentifier时失败”//2008的MSSM不支持下面的带引号,前者可以,代价是默认值是字符串转换失败了这是一个小坑,正常的要将引号去掉,Po......
  • charAt() 方法可返回指定位置的字符
    执行以下程序,输出结果为()varstr='acdaecad';varobj={};for(vari=0;i<str.length;i++){if(obj[str.charAt(i)]){obj[str.charAt(i)]++;}else{obj[str.charAt(i)]=1;......
  • 第一个字符必须是一个字母、下划线(_)或一个美元符号($);其他字符可以是字母、下划线、美元
    JavaScript的命名规则:1.必须以字母或者下划线开头,中间可以是.。数字、字母、下划线。2.变量名不能包含空格、加号、减号等符号。3.不能使用JavaScriot中的关键字。4.JavaScript的变量名是严格区分大小写的1.变量名一定不能是保留字2.快速记忆:第一个字符:字母/下划线/$(字母大......
  • 【数字识别】基于机器视觉的字符识别语言播报附附Matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,代码获取、论文复现及科研仿真合作可私信。......
  • c语言 常量字符串及其初始化
    @TOC前言一、常量字符串:常量字符串:需用双引号包着。例如:"hello","你好".常量字符串的本质就是字符数组,该字符串就是数组的名字。访问常量字符串的个元素:"hellowyy"[0]"hellowyy"[1]"hellowyy"[2]......访问各元素可以输出,但是不能赋值修改,因为这是常量字符。常量......
  • 统计字符串中每个单词出现的次数
    defcount_words(string):words=string.split()word_count={}forwordinwords:ifwordinword_count:word_count[word]+=1else:word_count[word]=1returnword_countstring="Iloveprogramming.Programmingisfun!"......