快手测开一面(果然还是理解不了老铁基因)

一面,等了8分钟,面试官姗姗来迟
问了几个实习经历的问题
四个八股
  • mysql的索引数据结构
  • 索引什么时候一般会失效
  • Java里接口和抽象类区别和使用场景
  • hashtable和hashmap的区别(我没用过hashtable,八股也没看过,于是我仔细说了下hashmap,但从这个时候开始,面试官似乎就决定不要我了
直接代码题,算法题都算不上,就是特定的文件内容解析罢了。
import java.util.*;

/**
 * 现有一个记录函数信息的json文件testmethods.json,如下所示:记录了函数的开始和结束位置:
 *
 * {"testmethod1":[12,34],"testlogin":[45,60],"searchgood":[70,100] ...}
 *
 * 在我们测试用例的时候,会得到一个覆盖行的列表,如下所示:coved_lines=[11,13,44,50,58,80]
 *
 * 根据testmethods.json文件中记录的函数信息,结合覆盖率返回的行号列表,查找出测试覆盖的函数列表。
 */

public class Main {

    public static List<String> getCoverLineMethodName(String testmethods, int[] cover_lines) {
        String s1 = testmethods.substring(1, testmethods.length() - 1);
        String[] methodStr = s1.substring(1).split(",\"");
        Map<String, ArrayList<Integer>> linesMap = new HashMap<>();
        for (String s : methodStr) {
            String[] s2 = s.split(":");
            String tempKey = "";
            for (String s3 : s2) {
                if (s3.contains("\"")) {
                    String newKey = s3.substring(0, s3.length() - 1);
                    linesMap.put(newKey, new ArrayList<>());
                    tempKey = newKey;
                } else if (s3.contains("[")){
                    String[] s4 = s3.substring(1, s3.length() - 1).split(",");
                    for (String lineStr : s4) {
                        linesMap.get(tempKey).add(Integer.parseInt(lineStr));
                    }
                }
            }
        }
        ArrayList<String> res = new ArrayList<>();
        for (int cover_line : cover_lines) {
            for (Map.Entry<String, ArrayList<Integer>> entry : linesMap.entrySet()) {
                if (entry.getValue().get(0) <= cover_line && cover_line <= entry.getValue().get(1)) {
                    if (res.contains(entry.getKey())) break;
                    res.add(entry.getKey());
                }
            }
        }

        return res;
    }

    public static void main(String[] args) {
        String testmethods = "{\"testmethod1\":[12,34],\"testlogin\":[45,60],\"searchgood\":[70,100]}";
        int[] cover_lines = {11,13,44,50,58,80};
        List<String> coverLineMethodName = getCoverLineMethodName(testmethods,cover_lines);
        System.out.println(coverLineMethodName);
    }
}

面试官手动测了几下,然后说,好了,今天就到这里了,你有什么想问的吗?
我直接????????

#快手##校招##秋招#
全部评论
老哥啥时候面的
点赞
送花
回复
分享
发布于 2022-08-31 22:23 河南
我和你的题一模一样,我也觉得KPI
点赞
送花
回复
分享
发布于 2022-08-31 18:03 天津
秋招专场
校招火热招聘中
官网直投
最后这一波意思是过了还是凉了?...
点赞
送花
回复
分享
发布于 2022-08-30 09:27 江苏
这个手撕题他算是个什么题呢...
点赞
送花
回复
分享
发布于 2022-08-30 20:05 北京
老哥邮寄里写的啥部门
点赞
送花
回复
分享
发布于 2022-09-02 00:52 上海

相关推荐

头像
不愿透露姓名的神秘牛友
04-28 12:07
博彦科技 Java开发实习生 200/day 本科其他
点赞 评论 收藏
转发
4 16 评论
分享
牛客网
牛客企业服务