C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了c – 词频统计大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在面试前,我遇到了这样的问题:

给定一个由单个空格分隔的单词组成的字符串,按照它们出现在字符串中的次数按降序打印出单词.

例如,输入字符串“a b b”将生成以下输出

b : 2
a : 1

首先,我要说输入字符串是由单字母单词还是多字母单词组成还不是很清楚.如果是前者,那可能很简单.

这是我的想法:

int c[26] = {0};
char *pIn = strIn;

while (*pIn != 0 && *pIn != ' ')
{
    ++c[*pIn];
    ++pIn;
}

/* how to sort the array c[26] and remember the original index? */

我可以得到输入字符串中每个单字母单词的频率统计数据,我可以对它进行排序(使用QuickSort或其他).但是在对count数组进行排序之后,如何获得与计数相关联的单字母单词,以便我可以稍后将它们打印出来?

如果输入字符串由多个字母组成,我打算使用map< const char *,int>跟踪频率.但同样,如何对地图的键值对进行排序?

问题在于C或C,欢迎提出任何建议.

谢谢!

解决方法

我会使用std :: map< std :: string,int>存储单词及其计数.然后我会用这个来得到这些话:

while(std::cin >> word) {
    // increment map's count for that word
}

最后,你只需要弄清楚如何按频率顺序打印它们,我会把它作为练习留给你.

大佬总结

以上是大佬教程为你收集整理的c – 词频统计全部内容,希望文章能够帮你解决c – 词频统计所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: