zoukankan      html  css  js  c++  java
  • 版本号排序

    题目

    输入一行,输出最小版本

    示例

    输入 2.4 2.10.3 5.4.6 7.6.5.4 3.2.12.12 1.4.5 1.10.8
    输出 1.4.5

    输入 5.6.7 4.3.1 7.8.4 5.10 3.4.4.4 3.4 4.7.0
    输出 3.4

    思路

    先对输入的各个版本号进行排序,Arrays.sort();
    第一位版本号的第一个数字,是最小版本的首位数字,据此可以排除一些不必要的循环判断。
    对于首位相同的版本号,进行第二位以及其余位的判断。

    代码

    import java.util.*;
    
    public class Main {
    
    
        public static void main(String[] args) {
           Scanner in =new Scanner(System.in);
           while(in.hasNext()) {
               String str = in.nextLine();
               String[] split = str.split("\s");
               // 字典序排列  从小到大
               Arrays.sort(split);
               // 最小版本起始
               int min = Integer.parseInt(split[0].split("\.")[0]);
               int index = 0;
               for(int i=0;i<split.length;i++) {
                   if(min == Integer.parseInt(split[i].split("\.")[0])) {
                       boolean flag = isMin(split[index], split[i]);
                        // flag == false  说明当前版本数字大
                       if(!flag) {
                           index = i;
                       }
                   }
               }
               System.out.println(split[index]);
    
           }
        }
    
        public static boolean isMin(String one,String two) {
            String[] list1 = one.split("\.");
            String[] list2 = two.split("\.");
            int min = list1.length<list2.length ? list1.length:list2.length;
            for(int i=0;i<min;i++) {
                if(Integer.parseInt(list1[i]) < Integer.parseInt(list2[i])) {
                    return true;
                }else if(Integer.parseInt(list1[i]) > Integer.parseInt(list2[i])){
                    return false;
                }
            }
            if(list1.length <= list2.length) {
                return true;
            }else {
                return false;
            }
        }
    }
    
    

  • 相关阅读:
    putty设置用key自动登录
    linux快速进入全屏命令行模式
    二维数组的指针
    vim编写Bash脚本
    使用cat命令添加或附加多行文本
    Linode中的Network Helper
    网络通信框架之retrofit
    网络通信框架之okHttp
    网络通信框架之okHttpUtils
    Volley源码分析
  • 原文地址:https://www.cnblogs.com/lick468/p/11441589.html
Copyright © 2011-2022 走看看