第一道题ac了90,还有10死活ac不出来 第二道ac了85,也是调不出来了 第一题代码: public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String str=br.readLine(); for(int i=0;i<str.length();i++) { if(!Character.isDigit(str.charAt(i))) { System.out.println("N"); return; } } int n=Integer.parseInt(str); if(n<1||n>12) { System.out.println("O"); return; } StringBuffer result=new StringBuffer("R"); int j=0; int length=result.length(); for(int i=0;i<n-1;i++) { length=result.length()*2+1; for(j=0;j<length;j+=2) { result.insert(j,"G"); j+=2; result.insert(j,"R"); } } System.out.println(result); } } 第二题代码 public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int change=Integer.parseInt(br.readLine()); String str=null; HashMap<Integer,ArrayList<Integer>> record= new HashMap<Integer,ArrayList<Integer>>(); HashSet<Integer> settle=new HashSet<Integer>(); settle.add(change); int result=0; while((str=br.readLine())!=null) { if(str.equals("mmp")) { break; } String[] temp=str.split(","); if(temp.length==1) { continue; } int n=Integer.parseInt(temp[0]); for(int i=1;i<temp.length;i++) { int a=Integer.parseInt(temp[i]); if(record.containsKey(a)) { ArrayList<Integer> temp1=record.get(a); temp1.add(n); record.put(a,temp1); continue; } else { ArrayList<Integer> temp1=new ArrayList<Integer>(); temp1.add(n); record.put(a,temp1); } } } ArrayList<Integer> solve=new ArrayList<Integer>(); solve.add(change); int arr=0; while(arr!=solve.size()) { ArrayList<Integer> temp=record.get(solve.get(arr++)); if(temp==null) { continue; } for(int i=0;i<temp.size();i++) { if(!settle.contains(temp.get(i))) { result+=temp.get(i); settle.add(temp.get(i)); solve.add(temp.get(i)); } } } System.out.println(result); } } 题都不难,很快作出来了,但是不知道哪些边界条件卡死我了😓
点赞 1

相关推荐

点赞 评论 收藏
分享
牛客网
牛客企业服务