推荐:数据科学课程和书籍清单以及培训讲座


一亩三分地论坛

 找回密码
 获取更多干活,快来注册

一亩三分地官方iOS手机应用下载
查看: 1490|回复: 3
收起左侧

[找工就业] snapchat 校招面经

[复制链接] |试试Instant~ |关注本帖
luochenhuan 发表于 2016-10-22 04:14:36 | 显示全部楼层 |阅读模式

2016(10-12月)-[14]CS硕士+<3个月短暂实习/全职 - 校园招聘会| 码农类全职@Snapchatfresh grad应届毕业生

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

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

x
warm up: 判断2个string是不是anagram,但是string会包含其他字符,我们只考虑a-z, 所以需要做一下预处理
follow up:给一个list of string, 返回最多anagram的count 比如 abc, bca, cba, aab, baa -> 3

本帖被以下淘专辑推荐:

神罗天征 发表于 2016-10-22 04:21:51 | 显示全部楼层
follow up 能直接sort然后放入map吗?
回复 支持 反对

使用道具 举报

xiaozhuxiaozhu 发表于 2016-10-22 15:19:55 | 显示全部楼层
第2题 就是group anagram吧?
key用 sorted后的anagram做key,
然后便利map的values, 用一个max variable keep track of the largest value就可以了吧。
abc, bca, cba, aab, baa. 1point 3acres 璁哄潧
放进map后是:
abc - > abc, bca, cba.鐣欏璁哄潧-涓浜-涓夊垎鍦
aab - > aab, baa
然后traverse the map, 第1个key的values是size 3的list, 第2个是size 2 的list。 感觉不用做任何sort。 遍历一遍就ok?
回复 支持 反对

使用道具 举报

FTD2014 发表于 2016-11-7 00:24:22 | 显示全部楼层
1.
  1. public class Solution {
  2.     public boolean isAnagram(String s, String t) {
  3.         if(s == null || t == null) {
  4.             return false;
  5.         }
  6.         if(s.length() == 0 && t.length() == 0) {
  7.             return true;
  8.         }
  9.         if(s.length() == 0) {
  10.             return false;
  11.         }
  12.         if(s.length() != t.length()) {
  13.             return false;
  14.         }
  15.         HashMap<Character, Integer> map = new HashMap<Character, Integer>();
  16.         for(int i = 0; i < s.length(); i++) {. 涓浜-涓夊垎-鍦帮紝鐙鍙戝竷
  17.             char c = s.charAt(i);
  18.             if(map.containsKey(c)) {
  19.                 map.put(c, map.get(c) + 1);
  20.             } else {. 1point 3acres 璁哄潧
  21.                 map.put(c, 1);
  22.             }
  23.         }
  24.         for(int i = 0; i < t.length(); i++) {
  25.             char c = t.charAt(i);
  26.             if(!map.containsKey(c)) {
  27.                 return false;
  28.             }
  29.             map.put(c, map.get(c) - 1);
  30.             if(map.get(c) < 0) {
  31.                 return false;. 鍥磋鎴戜滑@1point 3 acres
  32.             }
  33.         }
  34.         return true;. more info on 1point3acres.com
  35.     }
  36. }
复制代码

鏉ユ簮涓浜.涓夊垎鍦拌鍧.
2.
  1. public class Solution {
  2.     public List<List<String>> groupAnagrams(String[] strs) {
  3.         List<List<String>> list = new ArrayList<List<String>>();
  4.         if(strs == null || strs.length == 0) {
  5.             return list;
  6.         }. Waral 鍗氬鏈夋洿澶氭枃绔,
  7.         HashMap<String, ArrayList<String>> map = new HashMap<String, ArrayList<String>>();
  8.         for(int i = 0; i < strs.length; i++) {
  9.             char[] array = strs[i].toCharArray();. more info on 1point3acres.com
  10.             Arrays.sort(array);
  11.             String s = new String(array);
  12.             if(!map.containsKey(s)) {
  13.                 map.put(s, new ArrayList<String>());
  14.             }
  15.             map.get(s).add(strs[i]);
  16.         }
  17.         int count = 0;
  18.         ArrayList<String> result = new ArrayList<String>();
  19.         for(ArrayList<String> subList: map.values()) {
  20.             if(subList.size() > count) {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  21.                 result = subList;. more info on 1point3acres.com
  22.                 count = subList.size();
  23.             }
  24.         }
  25.         return result;. 1point 3acres 璁哄潧
  26.     }
  27. }
复制代码
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

custom counter

GMT+8, 2017-8-22 15:46

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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