人机交互-水王

三人行设计了一个水贴帖论坛。信息学院的学生都喜欢在上面交流水帖,传说在论坛上有一个“水王”,他不但喜欢发帖,

还会回复其他ID发的每个帖子。该“水王”发帖数目超过了帖子数目的一半。

如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个“水王”吗?
 
设计思路:
主要条件:水王的发帖数目超过总贴数目的一半
所以,水王的帖远大于其他人的贴
具体操作为:
 实现一次遍历,假设第一个是水王,与下一个比较,如果不一样,则这两个消除,
设接下来的这个数为水王,如果一样,则保留一个,次数加一,与下一个比较,重复上面的操作 ,抵消下去剩下的就是“水王”
复制代码
import java.util.*;
public class water {
       String find(String[] post,int n)
      {
         int i,j = 0;
        String shuiwang = post[0];
         for(i=0;i<n;i++)
         {
              if(!shuiwang.equals(post[i]))
                   {
                       j=j-1;
                        if(j<=0)   
                         {
                            shuiwang=post[i+1];   
                             j=1;   
                             i++;
                          }
                   }
             else
                    {
                         shuiwang=post[i];
                       j=j+1;
                    }
            }
         return shuiwang;
        }
     }
 
复制代码
复制代码
mport java.util.Scanner;

public class water1 {
 
  public static void main(String[] args) {
       // TODO Auto-generated method stub
      water f = new water();
    Scanner sca=new Scanner(System.in);
       System.out.println("输入帖子数:");
     int n=sca.nextInt();
       String post[]=new String[n+1];
 
       int i;
      System.out.println("输入帖子ID:");
       for(i=0;i<n+1;i++)
       {
              post[i]=sca.nextLine();
      }
        String shuiwang = f.find(post, n);
      System.out.println("水王ID是 " + shuiwang);
  }
 
 }
复制代码
posted @ 2019-05-30 21:13  故事-已开始。  阅读(198)  评论(0编辑  收藏  举报