课堂练习-找水王

一、题目

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

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

二、设计思路

1、将作者 id 存入一个一维数组

2、设置一个循环,按照顺序来依次两两比较 id ,如果作者id相同则保留,如果作者id不同则都删除

3、最后剩余的作者id即为水王id

三、源码

package HomeTest;

import java.util.Scanner;

public class Select {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        System.out.println("共有多少个帖子:");
        Scanner input = new Scanner(System.in);
        int x = input.nextInt();
        String a[] = new String[x];
        // 发帖子情况
        for (int i = 0; i < x; i++) {
            System.out.println("请输入第" + (i + 1) + "个帖子的作者id");
            Scanner input1 = new Scanner(System.in);
            a[i] = input1.nextLine();
        }
        // 找水王
        String s = a[0];// 水王
        int c = 1;// c是水王最后净帖子数,如果c不是正数则不是水王
        for (int i = 0; i < x; i++) {
            if (!s.equals(a[i]))// 相等继续
            {
                c--;
                if (c <= 0) {
                    s = a[i + 1];
                    c = 1;
                    i++;
                }
            } else {

                s = a[i];
                c++;
            }
        }
        System.out.println("水王id为:" + s);
    }

}

四、结果截图

 

原文地址:https://www.cnblogs.com/best-hym/p/12968437.html