有个公司来我们学校搞了个程序设计大赛,里面有道题目就是低频词过滤,只学过c啊,但是想用c++ 做,一点头绪都没有,大家给点意见吧,貌似这道题目就是javacup去年的初赛试题,题目的要求如下~因为我没有c++基础,所以希望大虾能说的细点,
这个是我网上找到的人家的解法(http://my.phome.cn/alvinliu/article.asp?id=129)
但没基础,看起来吃力四了,最后哪个好心人能帮忙解释清楚点啊~
题目1: 低频词过滤   题目描述:请编写程序,从包含大量单词的文本中删除出现次数最少的单词。如果有多个单词都出现最少的次数,则将这些单词都删除。   输入数据:程序读入已被命名为corpus.txt的一个大数据量的文本文件,该文件包含英文单词和中文单词,词与词之间以一个或多个whitespace(制表符、空格符和换行符一般被统称为“白字符”(whitespace characters))分隔。(为便于调试,您可下载测试corpus.txt文件,实际运行时我们会使用不同内容的输入文件。)   输出数据:在标准输出上打印删除了corpus.txt中出现次数最少的单词之后的文本(词与词保持原来的顺序,仍以空格分隔)。  
 
评分标准:
程序输出结果必须正确,内存使用越少越好,程序的执行时间越快越好

解决方案 »

  1.   

    在C++Primer第6章的文本查询系统是一个和你的要求相似的东东。
    有空借来看看,有很详细的解说。至少你提供的连接,我看看
      

  2.   

    To :gzlyb(冰风)
    恩,去看看先,哎,还要参加一个java的团体项目,一个月呀做的事情还真多啊~~
      

  3.   

    同gzlyb(冰风)
    C++Primer第三版,用STL
      

  4.   

    能不能用MFC呀,如果可以的话,一个Find API就搞定了.
      

  5.   

    哦,我看错了,你这个好像还得把一个个的词读出来.建立一个 map<char*,int>words 映射.
    每当遇到一个词,去映射中匹配,匹配失败,就加入,同时计数器置1. 匹配成功,计数器加1. 最后比较各映射项的计数器, 最小的就是最低频的呀.
      

  6.   

    哦,我看错了,你这个好像还得把一个个的词读出来.建立一个 map<char*,int>words 映射.
    每当遇到一个词,去映射中匹配,匹配失败,就加入,同时计数器置1. 匹配成功,计数器加1. 最后比较各映射项的计数器, 最小的就是最低频的呀.