zoukankan      html  css  js  c++  java
  • 字符串字符统计

    题目描述

    统计字符串中每个字符的出现频率,返回一个 Object,key 为统计字符,value 为出现频率
    1. 不限制 key 的顺序
    2. 输入的字符串参数不会为空
    3. 忽略空白字符 
    输入例子:
    count('hello world')
    输出例子:
    {h: 1, e: 1, l: 3, o: 2, w: 1, r: 1, d: 1}

    题目解析

    1.遍历输入字符串的每一个非空字符,每一个非空字符即为返回的Object对象的属性key

    2.如果该对象第一次遍历该非空字符,就添加该字符为属性值

    3.如果再次遍历到相同的非空字符,说明该字符属性存在,属性值value加1

    示例程序1
     1 function count(str){
     2     var obj = {};
     3     str=str.replace(/s/g, '');
     4     for(var i=0,len=str.length; i<len; i++){
     5         var key = str[i];
     6          if(obj[key] != null){
     7              obj[key]++;
     8          }else{
     9              obj[key]=1;
    10          }
    11     }
    12     return obj;
    13 }
    14 //console.log(count('hello world'));
    示例程序2
     1 function count(str){
     2     var obj = {};
     3     //匹配非空字符
     4     str.replace(/S/g, function(key){
     5         if(key in obj)
     6             obj[key]++;
     7         else
     8             obj[key]=1;
     9     })
    10     return obj;
    11 }
    12 //console.log(count('hello world'));

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

    参考地址

    链接:https://www.nowcoder.com/questionTerminal/777d0cd160de485cae0b1fd1dd973b44
    来源:牛客网

  • 相关阅读:
    结对编程(阶段二)
    结对编程 第一阶段
    Git实验
    webpack02
    webpack01
    实验五 单元测试
    实验四 代码审评
    UML建模工具的安装和使用
    实验二 结对编程(阶段二)
    博客园背景的修改
  • 原文地址:https://www.cnblogs.com/guorange/p/6603824.html
Copyright © 2011-2022 走看看