共有字符串(80%)
public static ArrayList<String> findCommonString (ArrayList<ArrayList<String>> values) { // write code here if(values==null)return null; ArrayList<String> res=new ArrayList<String>(); if(values.size()==1)return res; HashMap<String, Integer> map=new HashMap<String, Integer>(); HashMap<String, Integer> mapO=new HashMap<String, Integer>(); ArrayList<String> start=values.get(0); for(String str:start) { if(map.containsKey(str)) { map.put(str,map.get(str)+1); }else { map.put(str,1); } } for(int i=1;i<values.size();i++) { for(int j=0;j<values.get(i).size();j++) { if(map.containsKey(values.get(i).get(j))) { if(mapO.containsKey(values.get(i).get(j))) { mapO.put(values.get(i).get(j), mapO.get(values.get(i).get(j))+1); }else { mapO.put(values.get(i).get(j), 1); } } } map.clear(); map.putAll(mapO); mapO.clear(); } Set<String> set=map.keySet(); for(String s:start) { if(map.containsKey(s)) { if(map.get(s)!=0){ res.add(s); map.put(s,map.get(s)-1); } } } return res; }
平方数(AC)
破译敌军密码(AC)
public static int translateNum (int num) { // write code here return result(String.valueOf(num)); } public static int result(String str){ int len=str.length(); if(len==0)return 1; int way1=result(str.substring(1,len)); int way2=0; if(len>=2&&Integer.valueOf(str.substring(0, 2))<=25&&Integer.valueOf(str.substring(0, 2))>=10){ way2=result(str.substring(2,len)); } return way1+way2; }这里很像青蛙跳台阶,就是多了几个条件的判断,如2步的情况要判断是否在[10,25]范围,会出现如01,26等等不满足情况。
感想:
总体难度不大,兄弟们一起继续努力,求面试,求offer
全部评论
(4) 回帖