| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 734 人关注过本帖, 1 人收藏
标题:读入了一系列string对象,如何寻找其中重复次数最多的单词并将其重复次数记 ...
只看楼主 加入收藏
ClarenceC
Rank: 2
等 级:论坛游民
帖 子:54
专家分:18
注 册:2014-1-10
结帖率:87.5%
收藏(1)
已结贴  问题点数:20 回复次数:8 
读入了一系列string对象,如何寻找其中重复次数最多的单词并将其重复次数记下?
读入了一系列string对象,如何寻找其中重复次数最多的单词并将其重复次数记下?
搜索更多相关主题的帖子: 单词 如何 
2014-01-15 15:49
yuccn
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:何方
等 级:版主
威 望:167
帖 子:6814
专家分:42393
注 册:2010-12-16
收藏
得分:0 
为什么不能?
分析出每个单词。之后
strstr,查找第一个,在跳到这个的末尾,再strstr~~~

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2014-01-15 16:55
ClarenceC
Rank: 2
等 级:论坛游民
帖 子:54
专家分:18
注 册:2014-1-10
收藏
得分:0 
回复 2楼 yuccn
对不起,我才开始学习,学校都还没开课,我还不了解有些语句。
我是这样写的:
#include <iostream>
#include<string>
using namespace std;
int main()
{
    string dangqian,zhiqian;
    int x=0,m=1;//x用于计数但前重复次数,遇到更多重复次数时把x的值给m ,x再重新计数
    while(cin>>zhiqian>>dangqian){
        
        if(zhiqian==dangqian){
            ++x;
        }else{
            if(x>=m){
                m=x;
               
            }
            x=1;
            }
    }
    cout<<x<<endl;
    return 0;
}
但有一个问题 ,当输入为奇数个的时候就有麻烦了。
2014-01-15 19:48
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:7 
程序代码:
#include <iostream>
#include <string>
#include <map>
using namespace std;

int main()
{
    map<string,size_t> wordnums;

    for( string str; cin>>str; )
        ++wordnums[str];

    map<string,size_t>::const_iterator maxitor = wordnums.begin();
    for( map<string,size_t>::const_iterator itor=wordnums.begin(); itor!=wordnums.end(); ++itor )
    {
        if( itor->second > maxitor->second )
            maxitor = itor;
    }

    cout << maxitor->first << endl;

    return 0;
}
2014-01-16 11:54
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:13 
你这个while循环要如何结束?我觉得你这么写你这个while循环会一直进行下去,你总的有个结束语言吧。。。

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
   vector<string> shuru;
   string word,judge="yes";
   while(judge!="no")
  {
     cin>>word;
     shuru.push_back(word);
     cout<<" keep input word,press yes.If not press no"<<endl;
     cin>>judge;
  }
   int i,j,t,max=0;
   j=shuru.size();
   int mark[1000];
   for(i=0;i<j;++i)
   {
       for(t=i+1;t<j;++t)
        {
           if(shuru[i]==shuru[t])
              mark[i]++;
        }
   }
   for(i=0;i<j;++i)
   {
      if(mark[i]>max)
       {
          max=mark[i];
       }
   }
   for(i=0;i<j;++i)
   {
         if(mark[i]==max)
       cout<<"the most frequent word is:"<<shuru[i]<<"the numher of this string is:"<<max<<endl;
   }
   return 0;
}
感觉咱俩都是菜B,上面R版写的代码估计你都看不懂。。。我这个罗嗦的代码给你参考吧。。。

想抽苏烟了。
2014-01-17 03:54
followme001
Rank: 2
等 级:论坛游民
威 望:1
帖 子:16
专家分:10
注 册:2010-12-2
收藏
得分:0 
LS好像忘记了赋初值,int mark[1000];这里面是不确定的值,所以没有输出。
2014-01-18 20:23
ClarenceC
Rank: 2
等 级:论坛游民
帖 子:54
专家分:18
注 册:2014-1-10
收藏
得分:0 
谢谢各位,谢谢。
2014-01-19 14:59
love云彩
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:青藏高原
等 级:贵宾
威 望:53
帖 子:3663
专家分:11416
注 册:2012-11-17
收藏
得分:0 
总觉得有点过于依赖STL了,如果换一种编程语言来实现这个功能,不能用到STL,又不懂数据结构,代码重用性不高

思考赐予新生,时间在于定义
2014-01-20 07:12
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
以下是引用love云彩在2014-1-20 07:12:53的发言:

总觉得有点过于依赖STL了,如果换一种编程语言来实现这个功能,不能用到STL,又不懂数据结构,代码重用性不高

不重复造轮子

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2014-01-20 08:37
快速回复:读入了一系列string对象,如何寻找其中重复次数最多的单词并将其重复次 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026778 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved