推特电面

刚刚结束的电话面试,跟大家分享这个题:
题目是给你个目录地址,让你group file by content, 输出Map<Key, List>, key 是文件名称,value 是跟key相同内容的文件列表。
主function public static Map<String, List> groupFilesByContent(String rootDir)
感觉就是Dropbox那道duplicated†files那个题

我用java写,一直在练习algorithm题,早不记得java 读文件的api了,工作上又不用, 就先查说用File
bufferReader读,说不行,可能是图片,说java肯定有read stream的方法,他说read stream不对,应该是read byte,反正墨迹半天我也没明白他要考什么, 最后他说你先实现 isSameFile(File f1, File f2), 强调文件大读不到文件里, 我就说你就一点一点读,有不同就返回false了。最后他说你assume 这个function 提供了。我回头写主function,因为给我两两比较的function isSameFile(),我说找到所有文件,两个for loop 比较。写了个recursion 找到所有文件,这时已经没有时间了,他要结束,我都快气死了,就快速的写comment,存个数组arr[i]=j 表示文件i 和 j 相同,然后connected component (dfs) 找到相同文件 group, 第一个文件名为key,其他为value。
非常泄气,因为题做的不好,准备的mahine learning相关的都没问。而且考的也不是algorithm, 我是真的不太懂他要考什么,有大牛知道他的考点请不吝赐教,多谢!
之前做software engineer, 他上来就先跟我确认你是想投machine learning engineer? 感觉被鄙视了,我赶紧说phd的论文和paper是有machine learning的。phd 不是machine learning方向,感觉转个方向怎么这么难,直接被刷掉的感觉。