携程Java后端开发4月15日笔试参考
忘记题目了,只有代码,写得也比较烂,各位将就着看吧,没优化过的
第一题 盖房子
static String buildingHouse(String n) { if(n.charAt(0)=='-'){ for(int i=0;i<n.length();i++){ if(n.charAt(i)>'9' || n.charAt(i)<'0') return "N"; } return "O"; } for(int i=0;i<n.length();i++){ if(n.charAt(i)>'9' || n.charAt(i)<'0') return "N"; } int num = Integer.valueOf(n); if(num<1 || num>12) return "O"; ArrayList<String> str = new ArrayList<>(); str.add("R"); for(int i=1;i<num;i++){ ArrayList<String> tmp = new ArrayList<>(); for(int j=0;j<str.size();j++){ if(j%2==0){ tmp.add("G"); tmp.add(str.get(j)); tmp.add("R"); }else{ tmp.add(str.get(j)); } } str = tmp; } StringBuilder result = new StringBuilder(); for(int i=0;i<str.size();i++){ result.append(str.get(i)); } return result.toString(); }第二题 代码依赖
import java.util.*; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int target = sc.nextInt(); HashMap<Integer,ArrayList> map = new HashMap<>(); while(sc.hasNext()) { String str = sc.next(); String[] tmp = str.split(","); ArrayList<Integer> list = new ArrayList<>(); for(int i=1;i<tmp.length;i++){ list.add(Integer.valueOf(tmp[i])); } if(list.size()==0) continue; else map.put(Integer.valueOf(tmp[0]),list); } HashSet<Integer> set = new HashSet<>(); set.add(target); boolean flag = false; while(!flag) { flag = true; for (int key : map.keySet()) { if (!set.contains(key)) { ArrayList<Integer> list = map.get(key); for (int i = 0; i < list.size(); i++) { if (set.contains(list.get(i))) { set.add(key); flag = false; break; } } } } } int res = 0; for(int key:map.keySet()){ if(set.contains(key) && key!=target){ res += key; } } System.out.println(res); } }