WarcraftZS 2017-11-01 07:27 采纳率: 0%
浏览 2155

新手求教:字母作为数组下标怎么解释

String s = "adfoweyirlkbasgxalueralsdhg"; // 待统计字符串
int max = 0; // 记录最大出现次数
int[] cnt = new int[127]; // 临时计数用的数组
for (int i = 0; i < s.length(); i++) { // 循环字符以做统计
char c = s.charAt(i); // 取出单个字母
max = (++cnt[c] > max) ? cnt[c] : max; // 计数并检测最大出现次数
}
System.out.println (max);

cnt[c]这里能详细解释一下吗?

  • 写回答

3条回答

  • 十木禾 2017-11-01 08:11
    关注

    字符的ascii码就是数字

    我们拿 adfa 这个字符串类距离
    其对应的ascii码分别为:97 100 102 97

    上面程序的意思是这样子的
    max=0
    开始遍历

    遇到a => cnt[97]=cnt[97]+1=1 max=cnt[97]=1
    遇到d => cnt[100]=cnt[100]+1=1 max=1
    遇到f => cnt[102]=cnt[102]+1=1 max=1
    遇到a => cnt[97]=cnt[97]+1=1+1=2 max=cnt[97]=2

    这样就找到了最大值!

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料