前言:
今天参加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);
}
}
}