统计重复单词的一个小程序

a130206 2007-05-24 08:12:01
编程实现,从标准输入读入一系列string对象,找出连续重复的单词,要求
(1) 输出连续出现的string对象,并给出重复的次数
(2) 能准确定位同一个string对象连续出现的位置
(3) 跟踪重复次数最多的单词及其重复的次数
例:how,now now now brown cow cow
应有输出:
now重复了3次,cow重复了2次
now第一次出现在第3个位置, cow第一次出现在第7个位置
连续重复最多的string对象是是now:3次
...全文
548 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
庄鱼 2007-05-25
  • 打赏
  • 举报
回复
merlinfang方案是可行的,而且也方便。
taodm 2007-05-25
  • 打赏
  • 举报
回复
正则一下就解决了
(1) 输出连续出现的string对象,并给出重复的次数
(2) 能准确定位同一个string对象连续出现的位置
对问题3当然要继续用multimap
dsniff 2007-05-25
  • 打赏
  • 举报
回复
正则?!恐怕不会更简单哦
我的方法只维护了一个multimap,迭代输出还是比较简单的哒!
taodm 2007-05-25
  • 打赏
  • 举报
回复
算了,还是用正则表达式吧,这个功能很简单的。
milksea 2007-05-25
  • 打赏
  • 举报
回复
用vector可行,但不也太低效了?想象如果有几百MB的电子书……

大概最合理的办法是用hash表,其次是用C++的set。
dsniff 2007-05-24
  • 打赏
  • 举报
回复
multimap可以不?
存入字符串(string) 和位置(int)
用count 来计出现次数 find 来找到第一次出现时的位置
迭代得到 重复次数最多的单词及其重复的次数
a130206 2007-05-24
  • 打赏
  • 举报
回复
是一种思路,俺先试一下,看会有什么问题!
merlinfang 2007-05-24
  • 打赏
  • 举报
回复
你这样不要,首先定义结构
struct s
{
int firstpos;
int count;
string str;
}

然后使用vector<s> 来管理
a130206 2007-05-24
  • 打赏
  • 举报
回复
想通过建立三个容器类型实现,vector<string>存储连续重复的string对象,一个vector<int>存储vector<string>中string对象重复的次数,一个vector<int>存储vetor<string>中对象第一次出现的位置,主要问题是得想一个办法,建立这三个容器的关联,感觉这样挺麻烦,但是又想不出来一个比较好的办法来解决;
请高手指教,谢谢!!
lidongri 2007-05-24
  • 打赏
  • 举报
回复
说说你的思路吧
星羽 2007-05-24
  • 打赏
  • 举报
回复
*_*

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧