[每日一道小算法(三十四)] [字符串] shopee笔试题 比较版本号大小

前言:
今天参加shopee的笔试,有三道编程题,做出来两道,在这里准备记录一下。

题目描述

一般软件系统都会有一串数字表示版本号,版本号用"."分隔,写一段程序比较两个版本号的大小,大于返回1,小于返回-1,等于返回0。可以认为版本号相同的格式(即椴树相同)

题目解析

这道题其实很简单,就是依次比较版本号的大小即可,直接上代码。

package Shopee;

import java.util.Scanner;

public class Main {
    public static int compareVersion(String version1,String version2)
    {
        //以.进行区分比较
        String[] v1 = version1.split("\\.");
        String[] v2 = version2.split("\\.");
        int index1=0,index2=0;
        while (index1<v1.length || index2<v2.length)
        {
            String v11 = index1 < v1.length ? v1[index1] : "0";
            String v22 = index2 < v2.length ? v2[index2] : "0";
            int result = Compare(v11,v22);
            if(result == 0)
            {
                index1++;
                index2++;
            }else {
                return result;
            }
        }
        return 0;
    }
    public static int Compare(String v1,String v2)
    {
        int num1 = Integer.parseInt(v1);
        int num2 = Integer.parseInt(v2);
        if(num1>num2)
        {
            return 1;
        }else if(num1<num2)
        {
            return -1;
        }else {
            return 0;
        }
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext())
        {
            String s = scanner.nextLine();
            String[] v = s.split(",");
            String version1 = v[0];
            String version2 = v[1].split(" ")[1];
            System.out.println(version1);
            System.out.println(version2);
            int res = compareVersion(version1,version2);
            System.out.println(res);
        }

    }
}

发布了157 篇原创文章 · 获赞 34 · 访问量 4379

猜你喜欢

转载自blog.csdn.net/qq_39397165/article/details/104331777
今日推荐