Lar*_*ung 1 c string character frequency
我试图找到一种方法来获取字符串中最大/最小字符频率的值
例如,帮助
会有max freq = 2和min freq = 1(有2个e并且还有其他字母出现一次)
另一个例如aaaa
会有max freq = 4和min freq = 4
我正在尝试对此进行编程,但在使用scanf接收字符串后我不知道该怎么做.
假设只有小写,并且单词之间没有空格.
另外,我更喜欢强力搜索优雅的解决方案,包括类型转换和诸如此类的东西.刚开始使用C,请尽可能简单.顺便说一下,我不介意它只是一个建议或如何做到这一点的基本程序.我不一定需要整个代码.
提前致谢
你需要建立一个直方图:
size_t histogram[UCHAR_MAX] = { 0 }; // allocate and initialise histogram
for (size_t i = 0; s[i] != '\0'; ++i) // generate histogram for string s
{
histogram[(unsigned int)s[i]]++;
}
Run Code Online (Sandbox Code Playgroud)
在此之后,您可以通过直方图进行线性扫描,查找最小和最大字母频率.