快手编程题 ac了三道,最后一道没时间了,太菜了
1.版本号
import java.util.Scanner; public class 版本号 { public static void main(String[] args) { Scanner sc = new Scanner(System.in) ; int n = sc.nextInt(); String[] version1 = new String[n]; String[] version2 = new String[n]; for(int i = 0 ; i < n ; i++){ version1[i] = sc.next(); version2[i] = sc.next(); } int res = 0 ; for(int i = 0 ; i < n ; i ++){ res = compareVersion(version1[i],version2[i]); if(res == -1){ System.out.println("true"); }else { System.out.println("false"); } } } private static int compareVersion(String s, String s1) { String[] v1 = s.split("\\."); String[] v2 = s1.split("\\."); int l1 = v1.length; int l2 = v2.length ; int min = Math.min(l1,l2); for(int i = 0 ; i < min ; i++){ int i1 = Integer.valueOf(v1[i]); int i2 = Integer.valueOf(v2[i]); if(i1<i2){ return -1 ; }else if(i1>i2){ return 1 ; } } if(l1>l2){ for(int i = min ; i < l1 ; i ++){ if(Integer.valueOf(v1[i])!=0){ return 1 ; } } return 0 ; }else if(l1<l2){ for(int i = min ; i < l2 ; i ++){ if(Integer.valueOf(v2[i])!=0){ return -1 ; } } return 0 ; }else { return 0 ; } } }
2.累计平方和 import java.util.Set; public class 累计平方和 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] nums = new int[n]; for (int i = 0; i < n; i++) { nums[i] = sc.nextInt(); } for (int i = 0; i < n; i++) { boolean res = isHappy(nums[i]); if (res == true) { System.out.println("true"); } else { System.out.println("false"); } } } public static boolean isHappy(int n) { Set<Integer> set = new HashSet<>(); int m = 0; while (true) { while (n != 0) { m += Math.pow(n % 10, 2); n /= 10; }//82 68 100 1 if (m == 1) { return true;//true } if (set.contains(m)) { return false; } else { set.add(m);//82 68 100 n = m;//n=82 n=68 n=100 m = 0;//m=0 m=0 m=0 } } } }
3.合并 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = null; String s1 = null; s = sc.nextLine(); s1 = sc.nextLine(); String[] ss = s.split(" "); String[] ss1 = s1.split(" "); char[] ch1 = s.toCharArray(); int[] nums = new int[ss.length]; StringBuffer str = new StringBuffer(); int m = 0 ; for(int i = 0 ; i < ch1.length ; i ++ ){ if(ch1[i] == ' '){ continue; } nums[m ++] = ch1[i]-'0'; } if(nums.length <= 4){ for(int i = 0 ; i < nums.length ; i ++){ str.append(nums[i]).append(" "); } str.append(s1); }else{ int k = 0 ; for(int i = 0 ,j = 0 ; i < nums.length&&j<ss1.length ; ){ k ++ ; if(k > 4){ str.append(ss1[j++]).append(" "); k = 0 ; }else{ str.append(nums[i++]).append(" "); } while (i <= nums.length - 1 && j == ss1.length){ str.append(nums[i++]).append(" "); } while (j<=ss1.length-1 && i == nums.length){ str.append(ss1[j++]).append(" "); } } } System.out.println(str.toString()); } }
#快手##笔试题目##题解#