[LeetCode]Compare Version Numbers
来源:互联网 发布:js 清除cookie 编辑:程序博客网 时间:2024/05/29 18:10
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
本题难度Easy。
split
【前提】
You may assume that the version strings are non-empty and contain only digits and the . character.
【复杂度】
时间 O(N) 空间 O(N)
【思路】
利用split函数对版本号按照"."
进行分割,然后依次比较。
这题的难点在于几个corner case:
1.0
和1
是一个版本,意味即使长度不一样,也要检查后面是否都是01.15
要大于1.5
,因为前者是第15个子版本,而后者是第5个
【注意】
因为split方法输入的是一个正则表达式所以不能直接用.
,而是要用\.
,而java的\
要转义,所以要用\\.
【代码】
public class Solution { public int compareVersion(String version1, String version2) { //require String[] nums1=version1.split("\\."),nums2=version2.split("\\."); //invariant for(int i=0;i<Math.min(nums1.length,nums2.length);i++){ int a=Integer.parseInt(nums1[i]),b=Integer.parseInt(nums2[i]); if(a>b)return 1; else if(a<b)return -1; } //在剩余的数字里面看有没有非0 if(nums1.length>nums2.length){ for(int i=nums2.length;i<nums1.length;i++) if(Integer.parseInt(nums1[i])!=0)return 1; }else if(nums1.length<nums2.length){ for(int i=nums1.length;i<nums2.length;i++) if(Integer.parseInt(nums2[i])!=0)return -1; } //ensure return 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
- OpenCV学习笔记(六)离散傅里叶变换
- 第十五周项目—字符串插入
- JavaSE集合框架总结
- javaSe中 面试问的问题
- 【内部类】局部内部类及应用
- [LeetCode]Compare Version Numbers
- 光标的合理形状应该怎样?
- 可穿戴设备安全性分析(fitbit)
- 加密的简单介绍
- CommonJS AMD CMD UMD RequireJS的区别
- 深入理解C++的动态绑定和静态绑定
- AndroidTV开发(十一)Android Tv Launcher自定义RecyclerView
- C语言数据结构----递归的应用(斐波拉契数列、汉诺塔、strlen的递归算法)
- 图片验证码识别平台安装说明书