网易笔试
第三题 回文... 70% 求解惑...
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int n=in.nextInt(); int[] nums=new int[n]; for(int i=0;i<n;i++){ nums[i]=in.nextInt(); } System.out.println(circle(nums,n)); } in.close(); } // public boolean iscircle(int[] nums,int n){ // int j=0; // while(j<=(n/2)-1&&nums[j]==nums[n-j-1]) // j++; // if(j==n/2) // return true; // else // return false; // } public static int circle(int[] nums,int n){ int count=0; List<Integer> list=new ArrayList<Integer>(); int i=0; for (int num:nums){ list.add(i,num); i++; } for(int j=0;j<=(n+1)/2-1;j++){ if(list.get(j)==list.get(n-j-1)) continue; else{ int a=list.get(j)+list.get(j+1); list.set(j,a); list.remove(j+1); n--; count++; j--; } } return count; } }
第二题 暗黑 80%...
n=2(n-2)+(n-1) n-1:....CA n可以在n-1尾部2选1 还有一种情况
n-1;......AA 那n尾部3选一 此时n-1的情况和n-2相同 综合起来就是最前面的式子。不过只通过80 懒得思考了
直接交卷
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { int n=in.nextInt(); int res=caculate(n); System.out.println(res); } in.close(); } private static int caculate(int n) { int res=0; if(n<=0) return 0; if(n==1){ return 3; } if(n==2) return 9; res=2*caculate(n-1)+caculate(n-2); return res; } }
第一题 翻转 100
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String x = String.valueOf(in.nextInt()); StringBuffer a=new StringBuffer(x); a=a.reverse(); String y = String.valueOf(in.nextInt()); StringBuffer b=new StringBuffer(y); b=b.reverse(); int c=Integer.parseInt(String.valueOf(a))+Integer.parseInt(String.valueOf(b)); StringBuffer d=new StringBuffer(String.valueOf(c)); System.out.println(Integer.parseInt(String.valueOf(d.reverse()))); } } }