数组统计字符串的出现次数

s[str.charAt(j)]++;是怎么统计字符出现次数,给我讲清楚输入与输出

s[str.charAt(j)]++ 是通过在 char 类型变量 str.charAt(j) 的基础上进行数组索引操作,实现统计字符出现次数的方式。

在这段代码中,首先定义了一个 int 类型数组 s[] ,数组的长度为 128,因为 ASCII 字符集中的字符数量为 128 个,数组的每个元素代表一个字符的出现次数。例如,s[0] 表示 ASCII 码为 0 的字符出现的次数,s[1] 表示 ASCII 码为 1 的字符出现的次数,以此类推。

然后,在遍历字符串 str 的每个字符时,首先通过 str.charAt(j) 获取当前字符所对应的 ASCII 码值,将此值用作 s[] 数组的索引,将该索引位置处的元素值加 1,即实现了对当前字符出现次数的统计。例如,对于字符串 “hello”,在遍历到第一个字符 ‘h’ 时,通过 str.charAt(0) 获取其对应的 ASCII 码值 104,那么 s[104] 的值加 1,表明字符 ‘h’ 出现了 1 次。
最终,通过遍历完字符串 str 后,s[] 数组中各元素的值就代表对应字符在字符串 str 中出现的次数。当计算得到 s[] 数组后,就可对其进行排序,按照字符出现次数从大到小的顺序,计算得到数值 sum,即为程序的输出。
请添加图片描述

上述输出示例中,第一个字符串总共出现了 5 次不同的字符,它们的出现次数分别为 2、1、1、1、0,由大到小排序得到 2、1、1、1、0,对应的数值就是 2x26+1x25+1x24+1x23 = 532。以此类推,我们可以计算出每个字符串的输出值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值