《数据科学面试40+真题讲解》,K神本年度最后一次开课


一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推你去多家公司面试
Airbnb 数据科学职位
in analytics and inference
天天打游戏、照样领工资,
你要不要来?
把贵司招聘信息放这里
查看: 139|回复: 0
收起左侧

推特OA2(Apache log rate)及timeline

[复制链接] |试试Instant~ |关注本帖
wangjiasha 发表于 2017-11-11 14:03:09 | 显示全部楼层 |阅读模式

2017(10-12月) 码农类 硕士 全职@Twitter - 网上海投 - 在线笔试 |Passfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
前天一天做掉了OA7,今天早上HR过来约店面了。lz大概3-4周前海投,然后上上周5收到了OA2。一直懒于做,因为貌似很难,然后就拖到了前天。花了半个下午看面经看code,花了一晚上搞掉了OA。
1.家长孩子树。
2.信息masking。
3.hacking time。. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
4.Apache log rate。

前三道地里资料够多了。
稍微谈谈第四题,lz的算法是先用”来split输入的每一行log,这样就能方便得到时间、path和状态数字。(三个主要信息)
而后最关键一步之一parse时间,按照地里一个同学给的很给力的资料,用SimpleDateFormat直接搞定,注意设定时区GMT。(Google一下就有,是一段java代码)
而后写个treemap的比较器(很多同学也用pq,即heap,本质一样),按照题意比较出输出的先后顺序,到时候直接遍历key就能输出要求的东西。
而后把所有输入都存入map后,遍历map输出即可。. From 1point 3acres bbs

我在这里贴一下自己的比较器java code,比较粗糙,但work,仅供参考。(过全部test case) 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
.鐣欏璁哄潧-涓浜-涓夊垎鍦


     TreeMap<String, int[]> map = new TreeMap<>(newComparator<String>(){
           public int compare(String s1, String s2){
                String[] ss1 = s1.split("");
                String[] ss2 = s2.split("");
                if(ss1[0].equals(ss2[0])){
                    int in = 0;
                    while(in <ss1[1].length() && in < ss2[1].length() && ss1[1].charAt(in)== ss2[1].charAt(in)){
                        in++;
                        
                    }
                    if(in ==ss1[1].length()&&in == ss1[1].length())
                        return 0;
                    if(in == ss1[1].length())
                        return -1;
                    if(in == ss2[1].length())
                        return 1;
                    return ss1[1].charAt(in) -ss2[1].charAt(in);
                }
                    
                SimpleDateFormat df = newSimpleDateFormat("yyyy-MM-dd'T'HH:mm");
                Date d1 = new Date();
                Date d2 = new Date();
                try{
                    d1 = df.parse(ss1[0]);
                    d2 = df.parse(ss2[0]);
                }catch(Exception e){
           e.printStackTrace();
       }
               
                return (int)d1.getTime() -(int)d2.getTime();
                    
               
           }
       });

. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
我的key是字符串:“时间,路径”,value是rate。

祝大家和lz都good luck!

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2017-11-21 22:03

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表