华为OD机试E卷 -猜字谜 JAVA

public class OJTest6 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String[] guessWords = in.nextLine().split(",");
        String[] answerWords = in.nextLine().split(",");
        List<String> guesses = distinctAndSort(guessWords);
        List<String> answers = distinctAndSort(answerWords);
        List<String> result = new ArrayList<>();
        for (String guess : guesses) {
            for (int i = 0; i < answers.size(); i++) {
                if (guess.equals(answers.get(i))) {
                    result.add(answerWords[i]);
                }
            }
        }
        if (result.isEmpty()) {
            System.out.println("not found");
        } else {
            System.out.println(String.join(",", result));
        }
    }

    public static List<String> distinctAndSort(String[] strs) {
        List<String> list = new ArrayList<>();
        for (String str : strs) {
            //转化为char数组
            char[] chars = str.toCharArray();
            //创建一个HashSet来去重并且重排序
            HashSet<Character> set = new HashSet<>();
            for (char c : chars) {
                set.add(c);
            }
            Object[] array = set.toArray();
            chars = new char[array.length];
            for (int i = 0; i < array.length; i++) {
                chars[i] = ((Character) array[i]);
            }

            // 将字符数组转换为字符串
            StringBuilder sb = new StringBuilder();
            for (char c : chars) {
                sb.append(c);
            }
            list.add(sb.toString());
        }
        return list;
    }
}

全部评论

相关推荐

昨天面了云智一面,很确信自己凉了,因为一开始就问我学了多久前端,知道我没学多久之后就有种不care的态度,项目也不怎么问(虽然我知道对他们而言只是玩具项目),整体给我感觉就是已经默认我不行了。。。虽然我真的菜,但你真的没必要。。。————————分割线————————一些有的没的:1.自我介绍2.你这两个项目做了一共加起来有多长时间?学校的项目还是你自己在网上找的课跟着学的?3.你是啥时候开始学习前端的?4.你就是学校有教过前端方面的课吗?数据结构网络这些学校有教吗?5.计算机网络学得咋样?————————分割线————————八股:6.讲一下虚拟dom,为什么要有虚拟dom?7.用过哪些react&nbsp;hooks,讲一下8.react组件的生命周期讲一下9.比如说现在一个弹窗组件当卸载的时候,我想执行一些操作。比如说打印一个123,我这个代码该怎么写?10.useeffect第二个参数的作用11.那不传第二个参数和传第二个参数,但是是个空数组以及传了一个数组,并且里面有值。这三种情况有什么区别?12.get和post请求有啥区别?13.能用get请求去修改数据吗?14.http和https有什么区别?15.前端缓存方式,你都了解哪些?你在项目里有用过吗?16.做布局都有哪些布局方式?17.你觉得这几种方式有什么区别?18.怎么理解跨域请求?19.dom对象和document对象是什么?20.bom你了解吗?21.异步任务了解吗?怎么理解异步任务这个概念?22.讲讲微任务和宏任务————————分割线————————手撕(打开本地编译器自己写,也不知道为啥明明腾讯会议的面试模式有编译器,但非不用):23.判断输出async&nbsp;function&nbsp;async1()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;console.log('a');&nbsp;&nbsp;&nbsp;&nbsp;await&nbsp;async2();&nbsp;&nbsp;&nbsp;&nbsp;console.log('b');}async&nbsp;function&nbsp;async2()&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;console.log('c')}console.log('d')async1();setTimeout(()&nbsp;=&gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;console.log('e')},&nbsp;0)new&nbsp;Promise((resolve,&nbsp;reject)&nbsp;=&gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;console.log('f')&nbsp;&nbsp;&nbsp;&nbsp;resolve()}).then(()&nbsp;=&gt;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;console.log('g')})24.对比版本号['1.2.3',&nbsp;'1.2.34',&nbsp;'0.5',&nbsp;'3.2.3',&nbsp;'11.2.3']25.写一个弹窗组件
腾讯云智研发一面206人在聊 查看22道真题和解析
点赞 评论 收藏
分享
05-04 21:11
门头沟学院 Java
面试官很和蔼,很尊重我。面试开始时,首先介绍了自己所工作的部门,当时说的太快,我听的不太清。接下来就是项目和八股了:1、你先介绍一下自己在做项目时遇到的难点,以及你是怎么解决的。答的稀烂,没提前准备。直接让面试官问我了,感觉面评会很差!2、那你先说一下怎么基于拦截器进行Token的校验以及刷新,答的越详细越好。3、为什么要用双层拦截器?4、知道ThreadLoacl的底层原理吗?说一下。5、知道死锁吗?解释一下死锁。6、死锁怎么解决呢?答了一次性申请所有资源和申请不到资源就自己释放自己的资源。面试官肯定了第二种,说不同的场景要用不同的解决方法。我甚至让面试官说一种场景,面试官被我干沉默了半分钟,说这不太好说,但还是说了一个场景。7、解释一下通过分布式锁以及stream消息实现高并发一人一单的优化。答的很烂,说了个大概,分布式锁实现一人一单,stream加快执行效率。8、用到了什么分布式锁呢?9、setnx的底层原理是什么?知道吗?10、假如现在有三个线程来下单了,库存只有两个了,那三个线程都判断库存充足,并且都是首次下单,是不是三个线程都能判断自己可以下单成功,这时你将三个线程中的用户id和优惠券id都放到消息队列中,这个时候只能消耗两条消息,还有一条消息怎么办?没回答上来(事实上,库存判断+是否下过单判断+减库存+写入Stream队列全部封装在一个Lua脚本中原子执行,Lua脚本具有原子性,多个线程即使并发执行EVAL命令,Redis仍会串行执行脚本逻辑,保证同一时刻只有一个线程完成判断与写入流程。)11、说一下是怎么使用工厂模式和策略模式实现布隆过滤器解决缓存穿透。12、解释布隆过滤器的底层原理。13、知道MySQL吗,说一下都有哪些索引?14、联合索引知道吗?底层是什么数据结构?15、解释一下B+树。16、联合索引的查询规则最左前缀法则的底层原理。答了JavaGuide上的,通过每个索引筛选掉一部分数据。面试官说,那直接从第二个索引也能进行筛选啊,怎么解释呢?17、说一下事务的隔离级别。18、脏读、不可重复读和幻读。19、场景题:N个数的文件中,怎么搜索到前10大的数字?答的是将数据先存到DB表中,再读取就可以了。面试官说,这效率太慢了,一般不采取。20、知道ReenTrantLock吗?说一下它的底层原理。就回答了个CLH锁,忘记AQS了.......算法题:股票问题Ⅲ,没撕出来,跟着carl刷到动态了,但还没刷到这一题,面试官提醒了我3次,还是不会。反问环节总结:人生中的第一次大厂面试,总时长1小时15分钟。自己准备的不够充分,回答问题逻辑性不够(回答的很多话都需要面试官去理解,然后问我是不是这样),很多知识点的底层原理也不太清楚。虽然结果不好,但是已经尽力了,毕竟从决定学java到现在不过才2个月,还是要多学多思考。
美团一面2247人在聊 查看20道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务