携程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);
}
} 