美团 3.19笔试

美团笔试 3.19

1.加密解密

题目描述: 小团在网上冲浪时,发现了一些神秘代码,经过一段时间研究,小团发现了这些代码的加密规则。 对于一个长度为n的字符串s,其对应的加密字符串t的第一个字符是s中的第n/2个字符(向上取整),而t中的第二个到第n个字符则刚好对应s删去第n/2个字符(向上取整)后所得字符串的加密字符串。这个规则也可以用如下流程描述:将t初始化为一个空串,不断从s中取出第n / 2个字符(向上取整),并将其拼到t的后面,当s为空时,t即是所求的加密字符串。设计命令行工具帮他加密解密。
class Solution {

    public String encrypt(String s){//加密
        LinkedList<Character> words = new LinkedList<>();
        StringBuilder res = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            words.add(s.charAt(i));
        }

        while (!words.isEmpty()){
            int index = (int)Math.ceil(words.size() / 2.0) - 1;
            res.append(words.get(index));
            words.remove(index);
        }

        return res.toString();

    }

    public String decrypt(String s){//解密
        LinkedList<Character> res = new LinkedList<>();
        for (int i = s.length() - 1; i >= 0; i--) {
            char d = s.charAt(i);
            int index = (int)Math.ceil((res.size() + 1) / 2.0) - 1;
            res.add(index,d);
        }

        StringBuilder ans = new StringBuilder();
        for (Character re : res) {
            ans.append(re);
        }
        return ans.toString();
    }

}

2.Git 版本控制

设计一个版本控制软件,该软件会比较文件之间的差别并汇报冲突。比如上一次同步之后,小团将A机器上的文件f修改成了版本f1,并在f1没有同步到B机器上时,将B机器上的文件f修改成了版本f2,则版本控制工具会检测这一冲突。

输入

10 2 3 //文件总数,A修改的次数,B修改的次数 3 5   4 8 //A修改的文件范围[3,4] 和[5,6,7,8] 1 5 7 3 5 9 //B修改的文件范围[1,2,3],[5],[7,8,9]

输出

4 //有四个冲突

#笔试题目##美团#
全部评论
老哥,我也是19号参加的笔试,但是现在一直没有消息,请问你笔试后,收到后续的面试的消息了吗
点赞 回复 分享
发布于 2022-03-28 09:58

相关推荐

2024-12-23 06:50
东北大学 Java
给点吧求求了:3点发的帖子,害怕😰
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
01-09 15:20
腾讯给员工发甘蔗,乍一看是要去攻打字节吗?
天秤slam:排队等着挨削
投递字节跳动等公司8个岗位 >
点赞 评论 收藏
分享
评论
2
18
分享

创作者周榜

更多
牛客网
牛客企业服务