课堂练习-找水王

实验题目:

      三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个“水王”,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该“水王”发帖数目超过了帖子数目的一半。
如果你有一张当前论坛的帖子(包括回帖)列表,其中帖子的作者的ID也在其中,你能快速的找到这个传说中的水王吗?

设计思想:

      由于水王的发帖数目超过总帖子数目的一半而且已知所有帖子的ID,所以可以这样:遍历,如果两个ID不同,则消除,这样最后剩下的相同的ID就是水王的ID。

代码:

 1 import java.util.Scanner;
 2 public class TheKingOfWater {
 3 
 4     public static void main(String[] args) {
 5         // TODO Auto-generated method stub
 6         Water w = new Water();
 7         w.setLength();
 8         w.findWater();
 9     }
10 
11 }
12 class Water
13 {
14     String id[];
15     int length;
16     void setLength()//输入总帖数
17     {
18         System.out.println("请输入总帖数");
19         Scanner l = new Scanner(System.in);
20          length = l.nextInt();
21     }
22     void findWater()
23     {
24         id = new String [length];
25         System.out.println("请输入id");
26         for(int i=0;i<length;i++)
27         {
28             Scanner s = new Scanner(System.in);
29             id[i] = s.nextLine();
30         }
31         String m = "0";
32         int n = 0;
33         for(int i=0;i<length;i++)
34         {
35             if(n==0)
36             {
37                 m = id[i];
38             }
39             else if(id[i]==m)
40                 n++;
41             else 
42                 n--;
43         }
44         System.out.println("水王ID为:"+m);
45     }
46 }

实验截图:

个人总结;

 id类型应为字符串,在数据中寻找大部分的那部分可采用消除的方法。

原文地址:https://www.cnblogs.com/hzxsg0919/p/5512561.html