zoukankan      html  css  js  c++  java
  • 找水王

    要求:

      UNIN队设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。

      如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

    设计思路:

      发帖者的id随机生成动态数组。水王发帖数量最多,最不怕消除,利用这点,消除相邻元素id不同的两个元素,最后剩下的就是水王

    实现代码:

    //找水王(在一个论坛中,发帖数超过总帖数的一半的那个id号)
    #include<iostream>
    #include<string>
    #define N 10     //可以定义列表长度
    
    using namespace std;
    int main()
    {
        string king;
        //定义列表
        string IdList[N]={"2水货","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","2水货","3潜水员"};
        //string IdList[N]={"2水货","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","2水货","3潜水员","2水货","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","2水货","3潜水员"};
        //string IdList[N]={"2水货","2水货","3潜水员","2水货","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","2水货","3潜水员","2水货","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","2水货","3潜水员"};
        //string IdList[N]={"oottt","eee","ott","oottt","oottt","oottt","oottt","oottt","tt55","oottt"};
        //string IdList[N]={"1","2","3","1","1","1","1","2","5","1"};
        //假设第一个id是水王
        int i=0;
        int num=1;
        king=IdList[0];
        for(i=1;i<N;i++)
        {
            //如果当前id和king id不同
            if(IdList[i]!=king)
            {
                //num-1
                num=num-1;
                //num为0,将下一个id 设为 king,并直接跳过下一次循环,并将 num设为1
                //若num不为0,king 不变
                if(num==0)
                {
                    king=IdList[i+1];
                    i=i+1;
                    num=1;
                }
            }
            //若id和king id相同,num+1
            else
            {
                king=IdList[i];
                num=num+1;
            }
        }
        cout<<"要找的水王的 id 为:"<<king<<endl;
        return 0;
    }

    运行结果:

    ①测试文字列表string IdList[10]={"2水货","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","2水货","3潜水员"};

      ②测试更长的列表string IdList[30]={"2水货","2水货","3潜水员","2水货","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","2水货","3潜水员","2水货","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","3潜水员","1水王","3潜水员","1水王","1水王","1水王","1水王","2水货","3潜水员"};

      ③测试数字和普通字符串

    string IdList[10]={"oottt","eee","ott","oottt","oottt","oottt","oottt","oottt","tt55","oottt"};

    string IdList[10]={"1","2","3","1","1","1","1","2","5","1"};

     6、总结分析:

       这次的问题比较简单,实现起来不是很难,但方法的好坏决定了这个程序的运算时间和复杂度。

  • 相关阅读:
    linux file命令小记
    利用actionscript访问wfs服务
    在C/C++中static有什么用途?(请至少说明两种)
    单元测试、集成测试、系统测试的侧重点是什么?
    测试计划工作的目的是什么?测试计划文档的内容应该包括什么?其中哪些是最重要的?
    简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试&#160;β测试
    一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
    BUG管理工具的跟踪过程(用BugZilla为例子)
    软件测试分为几个阶段&#160;各阶段的测试策略和要求是什么?
    软件质量保证体系是什么&#160;国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么?
  • 原文地址:https://www.cnblogs.com/charles-s/p/13089234.html
Copyright © 2011-2022 走看看