小红书笔试,难度中等(0528实习笔试真题解析)

前言

本次题目难度中等,最后一题需要一些技巧。 第一题是哈希表模拟,打卡题。 第二题动态规划,非常明显,难度也不大。 第三题是二分答案,但是里面隐含的贪心思想笔记隐晦,有一定的难度。

第一题 小苯的文章浏览

小苯是小红书的忠实用户之一。

这天,在“小红书app”发了一篇文章后,收获了若干浏览量。但其中有人浏览了多次,小苯现在想知道所有人第一次浏览的先后顺序,请你帮帮他吧。

输入描述

输入包含n+1行。

第一行一个正整数n(),表示小苯拿到的浏览记录的记录条数。

接下来每行一个字符串s (长度在20)以内,表示id为s的用户此时浏览了一次小苯的文章。

输出描述:输出包含若干行,每行一个字符串s,表示用户的id。按照每个浏览的用户第一次浏览的顺序输出。

样例输入:

8
qcjj
benh
qsmcgogo
qcjj
ducksajin
benh
ducksajin
acidlemon

样例输出:

qcjj
benh
qsmcgogo
ducksajin
acidlemon

提示: 共有以上5人点赞,按照第—次点的顺序输出即可。

思路与代码:

 public static ArrayList<String> Search(){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        ArrayList<String> arrayList = new ArrayList<>();
        while(sc.hasNext()){            // 按CTRL+D结束输入
            String s = sc.nextLine();
            if(!arrayList.contains(s))  // 输入去重,仅将第一次出现的输入放入list
                arrayList.add(s);
        }

        for(String s:arrayList){
            System.out.println(s);      //遍历输出即可
        }
        return arrayList;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值