统计一个字符串中第一次出现且频率最高的字符
Posted .x->y=z
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了统计一个字符串中第一次出现且频率最高的字符相关的知识,希望对你有一定的参考价值。
统计一个字符串中第一次出现且频率最高的字符。
public static char statMostRateChar(String str) { if (str != null && !"".equals(str)) { int charsStat[] = new int[128]; int charsFirstIdx[] = new int[128]; int strLen = str.length(); for (int ch = 0; ch < 128;ch++) { charsFirstIdx[ch] = strLen; } // 統計字符出現的次數 for (int idx = 0; idx < strLen; idx++) { charsStat[str.charAt(idx)]++; // 记录字符第一次出现的位置 if (idx < charsFirstIdx[str.charAt(idx)]) { charsFirstIdx[str.charAt(idx)] = idx; } } int mostRateChar = 0; for (int ch = 1; ch < 128; ch++) { if (charsStat[ch] == 0) { continue; } // 找频率出现最高的字符 if (charsStat[mostRateChar] < charsStat[ch]) { mostRateChar = ch; // 出现频率一样时,选择出现在前面的数 } else if (charsStat[mostRateChar] == charsStat[ch] && charsFirstIdx[mostRateChar] > charsFirstIdx[ch]) { mostRateChar = ch; } } return (char) mostRateChar; } else { return ‘\0‘; } }
:)
以上是关于统计一个字符串中第一次出现且频率最高的字符的主要内容,如果未能解决你的问题,请参考以下文章
python求每个 数字出现的频率 我有一个list: 2 2 5 7 4 2 我想要gener
python: 求一个数字中出现频率最高的数。 例如:longestDigitRun(11777332) return 7