美团二笔

感觉这次的难度明显亲和的很多(但并不妨碍我a不出第三题orz)

第一题

本来打算用栈处理多个'Z'连续撤销的情况,后来一看题目中说'R'和'Z'都只会出现一次,所以直接模拟即可。

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        in.nextLine();
        for (int i = 0; i < n; i++) {
            String s = in.nextLine();
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < s.length(); j++) {
                char c = s.charAt(j);
                if (c == 'Z') {
                    if (j > 0) {
                        if (s.charAt(j - 1) == 'R') {
                            sb.reverse();
                        }
                        else {
                            sb.deleteCharAt(sb.length() - 1);
                        }
                    }
                }
                else if (c == 'R') {
                    sb.reverse();
                }
                else {
                    sb.append(c);
                }
            }
            System.out.println(sb.toString());
        }
    }
}

第二题

直接n^2暴力的话肯定会超时,考虑到l1至r1之间的数字都是连续的,可以遍历每个l2至r2之间的数,每次用O(1)的时间开销计算出当前数字能被多少个数整除。这样可以过50%的用例。

然后我们可以再进行剪枝。如果遍历至l2 > r1,那么后面将不再存在被整除的情况,直接返回结果即可。这样便可通过全部测试用例。

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int l1 = in.nextInt();
        int r1 = in.nextInt();
        int l2 = in.nextInt();
        int r2 = in.nextInt();
        long ans = 0l;
        for (int i = l2; i <= r2; i++) {
            if (i > r1) break;
            int start = l1 / i;
            start = i * start < l1 ? (start + 1) : start;
            int end = r1 / i;
            ans += end - start + 1;
        }
        System.out.println(ans);
    }
}

第三题一看是图,直接开摆交卷了QAQ

#软件开发笔面经##技术岗笔试题求解##牛客创作赏金赛#
全部评论
上午美团嘻嘻哈哈,下午淘天原地爆炸。这电话面完也不用等结果了,彻底凉凉
5 回复 分享
发布于 03-15 15:30 北京
忘记剪枝了,只过了55%
2 回复 分享
发布于 03-15 14:30 广东
🐷哥带我走吧😭
2 回复 分享
发布于 03-15 14:26 江苏
这完全是我
2 回复 分享
发布于 03-15 14:18 江苏
什么题❓
点赞 回复 分享
发布于 03-19 08:51 四川
佬可以试试贝壳呢,主页有~
点赞 回复 分享
发布于 03-18 23:34 北京
为什么我没有收到二笔的邮件?兄弟你有邮件吗
点赞 回复 分享
发布于 03-16 11:07 广东
笔试完就有ai面吗,我为什么没收到ai面
点赞 回复 分享
发布于 03-15 22:29 山东
字节✌还要做美团笔试吗
点赞 回复 分享
发布于 03-15 17:02 江苏

相关推荐

04-02 16:28
苏州大学 Java
之前说结束写面经的,挂完休息两天来写了(我感觉我这段经历很奇怪,前两面简单得离谱,估计跟部门有关)——————————————————————————————————————————3.24&nbsp;一面(3.26&nbsp;约二面)Java里的值传递&nbsp;vs&nbsp;引用传递什么是反射、优缺点类加载机制jvm指令,方法调用其它方法时的jvm指令jdk17的特性nio、bio、aio&nbsp;的区别粘包拆包的原因、解决方法redis的优缺点线程&nbsp;vs&nbsp;进程死锁OSI七层模型http&nbsp;vs&nbsp;httpshttps怎么加密单例bean线程安全?jdk动态代理&nbsp;vs&nbsp;CGLIB@Autowire&nbsp;vs&nbsp;@Resource了解golang...
沙福林:三面这个你问他,你知道吗?你说出来我想学习一下。用lua脚本是为了保证一捆redis命令可以一起成功或者失败,并且只需要发送一次请求。java中虽然可以用redis的事务,但是事务是把所有命令放在队列然后统一提交,这个提交并不会一起成功一起失败,而是成功的成功,失败的失败,这样的话很难保证一致性,此外redis的事务也不是一起发请求,而是一起执行,逐个发请求,从性能开销和实现效果角度出发,必须用lua脚本。
点赞 评论 收藏
分享
04-18 13:48
已编辑
大连理工大学 算法工程师
uc标题党哈…暑期终于从鹅厂开始,鹅厂结束。直到现在想起仍觉得梦幻,睡不着,写下此文。牛客上大多uu都是开发,我见到的算法岗很少,所以也许我的经历能有一些不一样的色彩吧。也看过很多很多的uu暂时身陷泥淖,发的文章感人深切。我坚信人生总有逆风翻盘之时,一定要坚持,才能让成功有机会眷顾。楼主bg双中下九,一直并不以学历为优势或背书,因为无论在哪个平台,大家都会更关注比自己更强的那些人。硕士期间一些努力加一些运气,收获了一篇论文,当时就决定尝试一下算法。于是开始猛猛的巩固自己的基础知识,让自己的理论层面更有竞争力。这个过程说难也难,说简单也简单,至少楼主自己认为难度是比不上很多uu花大量的时间背八股的。也因此,楼主其实每次在完全看不懂很多uu的面经时会产生很高的敬意,楼主觉得开发的准备工作以及横向竞争真的压力太大了。跑题了……总之匆匆准备好之后,楼主开始在三月初投递简历。楼主的研究方向是智能体强化学习,简而言之就是研究AI在游戏博弈中的智能行为的。结果打开各企业的校招网站,直接蒙圈了。岗位真的太少了,仔细一想后端开发每个公司都要,但是算法只有大厂才会有,还必须找对口的,很多时候容错直接降低了。在没有机器人厂开实习的情况下,楼主发现只有鹅厂,猪厂以及小破站能有对应的岗位。于是投了不到十份简历就等着了。即使是只有十份简历,也只有两个是完全对口的,其他的都是通用算法岗,楼主本身也不太想去。一是担心学不到东西,二是担心自己没有产出。结果第一次面就面最想去的鹅厂,紧张到爆炸了,很多东西都支支吾吾的,手撕大脑也是一片空白,好在是最后想出来了。面完之后缓了一小时才恢复。后来面试越来越多,就不再那么紧张了。也遇到过好的面试官,和一些我不太满意的面试官。一直只想着鹅厂猪厂,还是容错太低了,如果挂了真的不知道自己该何去何从了。尤其是三月底再看,我投递的岗位已经全被撤下,心里更是一阵悸怕,万一当时准备的再晚一些就真的找不到实习了。中间鹅厂又卡了很久的录用评估,期间还拒绝了字节的邀请,也是内容太不对口了。这段时间就一直在想如果这两家大厂不要楼主怎么办,找不到任何对口的方向,开发又不懂,好像真的没办法了。后来很快的把心态调整好了,自己选择的路,跪着也要走完。面试也越来越自信,最终拿下了鹅厂的offer。仔细回首,侥幸没有挂过一场面试,倒是自己主动把另外两个大厂终止了,也算是一帆风顺吧。不过楼主无意凡尔赛,只是觉得这种小众方向岗位太少,容错太低,要么鸡犬升天,要么万劫不复。好就好在竞争也少些吧,只能说每条路都各有难处,谈不上谁比谁简单。这个形势下,谁又不是自身难保。未来的路还得自己走,努力才是唯一的答案。#牛客AI配图神器#&nbsp;&nbsp;#腾讯求职进展汇总#&nbsp;&nbsp;#牛客创作赏金赛#&nbsp;&nbsp;#还记得你第一次面试吗?#
点赞 评论 收藏
分享
评论
12
22
分享

创作者周榜

更多
牛客网
牛客企业服务