Leetcode - Compare Version Numbers
来源:互联网 发布:中国茶叶出口数据2017 编辑:程序博客网 时间:2024/03/29 23:41
Question
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
Java Code
public int compareVersion(String version1, String version2) { String[] s1 = null; String[] s2 = null; //从输入字符串中解析提取到版本号中的各段数字,存储在数组中 s1 = version1.contains(".") ? version1.split("[.]") : new String[]{version1}; s2 = version2.contains(".") ? version2.split("[.]") : new String[]{version2}; int len1 = s1.length; int len2 = s2.length; int maxLen = len1 > len2 ? len1 : len2; int num1; int num2; //逐段比较数字的大小 for(int i = 0; i < maxLen; ++i) { num1 = (i < len1) ? Integer.parseInt(s1[i]) : 0; num2 = (i < len2) ? Integer.parseInt(s2[i]) : 0; if(num1 > num2) return 1; else if(num1 < num2) return -1; } return 0; }
说明
- 这里给出代码不区分两个版本号之间的长短关系,实际上是将其中较短的版本号的后几个字段用0补全,使两者的字段一样多,方便进行比较,但是在每次比较之前需要判断数组指针是否越界,所以性能较低。当然也可以只比较两者共有的前若干个字段,然后再单独将较长版本号的后几个字段和0做比较,但是这样实现起来代码就比较冗长啰嗦了。
0 0
- Leetcode Compare Version Numbers
- [leetcode] Compare Version Numbers
- [leetcode] Compare Version Numbers
- Leetcode: Compare Version Numbers
- 【Leetcode】:Compare Version Numbers
- leetcode:Compare Version Numbers
- [LeetCode]Compare Version Numbers
- [leetCode] Compare Version Numbers
- [leetcode] Compare Version Numbers
- 【Leetcode】Compare Version Numbers
- [LeetCode] Compare Version Numbers
- Leetcode: Compare Version Numbers
- LeetCode-Compare Version Numbers
- leetcode:Compare Version Numbers
- LeetCode--Compare Version Numbers
- Compare Version Numbers Leetcode
- Compare Version Numbers --- LeetCode
- [LeetCode] Compare Version Numbers
- SAP删除会计科目 OBR2
- NSURLSession的基本使用
- poj3415 Common Substrings (后缀数组+单调队列)
- POJ 3744 Scout YYF I (矩阵相乘+概率DP)
- 十一、图的存储---(2)邻接矩阵和邻接表
- Leetcode - Compare Version Numbers
- HDU 1166 线段树
- NSURLSession的介绍和说明
- Android 发布项目到 jcenter 遇到的坑
- linux上修改时间
- iOS视图控制器编程指南 --- 视图控制器层次结构
- 1026. 程序运行时间(15)
- 英语的五种基本句型
- 正向代理与反向代理