• 版本号排序


    题目

    输入一行,输出最小版本

    示例

    输入 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;
            }
        }
    }
    
    

  • 相关阅读:
    MySQL Connection排查未授权用户(unauthenticated user)
    Git常用命令
    abc
    更新显卡驱动
    财务模块 采购、接收、应付会计分录和功能认识
    ebs界面颜色改变
    获取科目的描述 创建科目
    EBS总账(GL)模块常用表
    收款 付款 到总帐
    PO收料到入库的分析
  • 原文地址:https://www.cnblogs.com/lick468/p/11441589.html
Copyright © 2020-2023  润新知