2020-3:字符串操作--统计一个字符串中字符出现的次数,并找出最大值--字典(JavaScript)

此博客涉及前端领域,重点围绕JavaScript展开,但具体内容未给出。JavaScript是前端开发的重要技术,在网页交互等方面发挥关键作用。
    // 字典方法 统计一个字符串中字符出现的次数
    let str = 'helloworld'
    let dict = {} // 先定义空对象

    for(let i = 0; i < str.length; i++){ // 遍历字符串中每个字符
      if(dict[str[i]] === undefined){ // 如果dict对象中未包含以当前字母为属性名的成员,就强行添加一个以当前字母为属性名的成员,并赋属性值为1
        dict[str[i]] = 1
      }else{ // 如果dict对象中包含以当前字母为属性名的成员,则以当前属性值+1
        dict[str[i]]++
      }
    }

    console.log(dict)

    // 找到最大值
    let max,count=0

    for(let key in dict){ // 遍历字典中每个属性,比较当前属性值和count的值
      if(dict[key] > count){
        max = key // 保存属性名
        count = dict[key] // 保存属性值
      }
    }

    console.log('最大值:',max)
    console.log('最大数:',count)
以下为几种不同编程语言中,找出字符串`&#39;zasdfghjklaqwertyuiopiaiasd&#39;`里出现次数最多统计其出现次数的方法: ### JavaScript 实现 ```javascript function getStr(str) { var strArr = str.split(&#39;&#39;); var newStr = {}; var theMax = 0; var maxStr = []; // 数组去重和计算出现的次数 strArr.forEach(function(item) { if (newStr[item]) { newStr[item]++; } else { newStr[item] = 1; } }); // 比较母出现的次数取出出现最多次数母及对应的次数 for (var key in newStr) { if (newStr[key] > theMax) { theMax = newStr[key]; maxStr = [key]; } else if (newStr[key] == theMax) { maxStr.push(key); } } // 输出方式随意 console.log(&#39;以下母出现次数最多,出现次数为:&#39; + theMax + &#39;次&#39;); for (var i = 0; i < maxStr.length; i++) { console.log(maxStr[i]); } } var testStr = &#39;zasdfghjklaqwertyuiopiaiasd&#39;; getStr(testStr); ``` ### Python 实现 ```python str = &#39;zasdfghjklaqwertyuiopiaiasd&#39; dict = {} # 循环遍历列表或字符串,如果不在则创建(key,value),如果字符字典中则值加1 for i in str: if i not in dict: dict[i] = 1 else: dict[i] += 1 # 找到字典中,最大的value值 temp = max(dict.values()) # 根据最大的value值,找对应的key值,打印出出现次数最多字符 for k, v in dict.items(): if v == temp: print("出现最多的是:", k, "出现了:", v) ``` ### C++ 实现 ```cpp #include<bits/stdc++.h> using namespace std; int ch[26]; //记数 int main() { string s = "zasdfghjklaqwertyuiopiaiasd"; int i; int index; //标记位置 for (i = 0; i < s.size(); i++) { for (int j = i; j < s.size(); j++) //j=i,为的是防止漏掉只出现一次的数 { if (s[i] == s[j]) //依次循环判断,重复出现,次数加一 { ch[s[i] - &#39;a&#39;]++; } } } int max = -1; //ch[i]有可能为0,所以定义max的初值为-1; for (i = 0; i < 26; i++) { if (ch[i] > max) //判断出现次数最多 { max = ch[i]; index = i; //记下出现次数最多字符的位置 } } cout << char(index + &#39;a&#39;) << "," << max << endl; //输出出现最多次数字符,和次数 return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值