登录 注册
无
座位问题,就遍历字符串就行。。 /******************************开始写代码******************************/ static boolean fun(String table, int n) { char[] seats = table.toCharArray(); if(seats.length == 0 && n > 0) return false; else if(n == 0) return true; for(int i = 0; i < seats.length-1;) { if(seats[i] == '1') { i += 2; continue; } if(i == 0 && seats[i+1] == '0') { n --; i += 2; } else if(i > 0 && seats[i-1] == '0' && seats[i+1] == '0') { n --; i += 2; } else { i ++; } if(n == 0) return true; } return false; } /******************************结束写代码******************************/ 杨辉三角。。从第一行开始判断每一行出现没这个数。。贼鸡儿暴力。。但是ac了(所有的cases都在前100行) /******************************开始写代码******************************/ static long fun(long x) { if(x == 1) return 1; return getYFTriangleLine(100, x); } static long getYFTriangleLine(int lines, long target){ long[] a = new long[lines + 1]; long previous = 1; for (int i = 1; i <= lines; i ++){ for (int j = 1; j <= i; j++){ long current = a[j]; a[j] = previous + current; previous = current; if(a[j] == target) return i; } } return -1; } /******************************结束写代码******************************/ 动态规划求俩字符串的最大公共长度。。 /******************************开始写代码******************************/ static boolean fun(String str) { if(str == null || "".equals(str)) return true; int l = str.length(); String rstr = new StringBuffer(str).reverse().toString(); int[][] dp = new int[l+1][l+1]; dp[0][0] = 0; for(int i = 0; i < l; i ++) { dp[0][i] = 0; dp[i][0] = 0; } for(int i = 1;i < l+1; i ++) for(int j = 1; j < l+1; j ++) { if(str.charAt(i-1) == rstr.charAt(j-1)) dp[i][j] = dp[i-1][j-1] +1; else { dp[i][j] = Math.max(dp[i-1][j], dp[i][j-1]); } } return l - dp[l][l] <= 1; } /******************************结束写代码******************************/
杨慧三角那题我开始就用数组累加,只通过11%
后来改用组合数通过22%,直接暴力也可以么?
第二题38%
第三题50%
问答题第一题不会
估计没了
第一道题遍历一遍将有人的左右两边字符都换为x,然后数0的个数是否大于等于n,奈何只过 c++ 88%。。。
第二题一样的算法c++过不全,python 100% ????
第三题我就想的是如果加一个字母能成为回文,那么这个字母一定要和另一半的某个字母匹配,这样的话删除另一半的那个字母应该就能成为回文了。然而 。。也只过 c++ 88%
我都怀疑是不是c++的那个默认的输入方式不能输入完一个长的字符串。。。