快手编程题 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());
    }
}



#快手##笔试题目##题解#
全部评论
大佬好多啊
点赞 回复 分享
发布于 2019-08-25 19:26
都是大佬
点赞 回复 分享
发布于 2019-08-25 19:23
前三题做完还有一个小时,第四题花了半小时想不出了就交卷了
点赞 回复 分享
发布于 2019-08-25 19:21
***,我担心时间不够,分解了100次,早知道我也搞个while true,
点赞 回复 分享
发布于 2019-08-25 19:09

相关推荐

一天代码十万三:这都不能算简历吧
点赞 评论 收藏
分享
评论
点赞
5
分享

创作者周榜

更多
牛客网
牛客企业服务