fengsehng

# 题目：

``````Compare two version numbers version1 and version2.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.

You may assume that the version strings are non-empty and contain only digits and the . character.
The . character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level
revision of the second first-level revision.

Here is an example of version numbers ordering:

0.1 < 1.1 < 1.2 < 13.37
``````

# 思路：

• 题意：比较两个版本号字符串的大小
• 把字符串用split转化为数组，注意split（\.），然后转化为整数数组，遍历比较。注意如果版本号后面都是零的情况

# 代码：

``````public class Solution {
public int compareVersion(String version1, String version2) {
String[] v1,v2;
if(version1.indexOf(".") == -1){
v1 = new String[1];
v1[0] = version1;
}else{
v1 = new String[version1.split("\\.").length];
v1 = version1.split("\\.");
}
if(version2.indexOf(".") == -1){
v2 = new String[1];
v2[0] = version2;
}else{
v2 = new String[version2.split("\\.").length];
v2 = version2.split("\\.");
}
int[] array1 = sToInt(v1);
int[] array2 = sToInt(v2);
int nn = Math.min(array1.length,array2.length);
for(int a = 0;a < nn;a++){
if(array1[a] > array2[a]){
return 1;
}else if(array1[a] < array2[a]){
return -1;
}
}
if(array1.length > array2.length){
for(int k = nn; k < array1.length;k++){
if(array1[k] != 0){
return 1;
}
}
return 0;
}else if(array1.length < array2.length){
for(int m = nn;m < array2.length;m++){
if(array2[m] != 0){
return -1;
}
}
return 0;
}
return 0;
}
public int[] sToInt(String[] ss){
int n = ss.length;
int[] result = new int[n];
for(int i = 0;i < n;i++){
try{
result[i] = Integer.parseInt(ss[i]);
}catch(Exception e){

}
}
return result;
}
}``````

### fengsehng

LeetCode：Compare Version Numbers - 比较版本号

1、题目名称 Compare Version Numbers（比较版本号） 2、题目地址 https://leetcode.com/problems/compare-version-numbers/ 3、题目内容 英文：Compare two version numbers version1 and ......

2015/09/18
376
0
165. Compare Version Numbers - LeetCode

Question 165. Compare Version Numbers Solution 题目大意： 比较版本号大小 思路： 根据逗号将版本号字符串转成数组，再比较每个数的大小 Java实现：...

yysue
2018/08/27
0
0
Leetcode日记6

（2015/11/28） LeetCode 303 Range Sum Query - Immutable：（Easy） 1）超时的算法：每次调用sumRange函数进行一次累加运算。 2）不超时的算法：改变数组的内容，存储从0下标到当前下标所有...

fxdhdu
2015/11/28
73
0
Leetcode 201. Bitwise AND of Numbers Range

SnailTyan
2018/09/05
0
0

2016/12/26
3
0

forespider
15分钟前
1
0
Spring Cloud Alibaba基础教程：Nacos 生产级版本 0.8.0

23分钟前
1
0
HTML+CSS实现div的高度自适应填满剩余空间的7种方法

linsk1998
27分钟前
1
0
Oracle学习日志-8（查询结果排序)

33分钟前
1
0
Data truncation: Incorrect datetime value: '0000-00-00 00:00:00' for column xxx

1. 错误提示 Data truncation: Incorrect datetime value: '0000-00-00 00:00:00' for column xxx 2. 问题分析 从上面的描述我们可以看出原因是：我们给类型是datetime的xxx字段赋值0000-00......

36分钟前
2
0