[LeetCode]--165. Compare Version Numbers
来源:互联网 发布:巴纳姆效应 知乎 编辑:程序博客网 时间:2024/05/21 09:13
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
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
public class Solution { public int compareVersion(String version1, String version2) { String[] version1Arr = version1.split("\\."); String[] version2Arr = version2.split("\\."); int i = 0, j = 0; while (i < version1Arr.length && j < version2Arr.length) { if (strToInt(version1Arr[i]) > strToInt(version2Arr[j])) return 1; if (strToInt(version1Arr[i]) < strToInt(version2Arr[j])) return -1; i++; j++; } while (i < version1Arr.length) { if (strToInt(version1Arr[i]) != 0) { return 1; } i++; } while (j < version2Arr.length) { if (strToInt(version2Arr[j]) != 0) { return -1; } j++; } return 0; } public int strToInt(String s) { int sum = 0; for (int i = 0; i < s.length(); i++) { sum = sum * 10 + s.charAt(i) - '0'; } return sum; }}
要考虑的情况很多,最开始我只考虑了1.2和1.3这种啊,其实还有1.2.2.3.3.3.2.1这种,然后我就考虑如果没比较完的为0那就结束了,不过后来又出错了,接着有1.2.3.0.0.2.3.4。哈哈哈哈,所以只能用while把i,j中没遍历完的接着遍历完。最后我以为完美了,我用的equals(“0”)这样的,不过出现1.2.3.00.0.00000.2.3。醉了,所以又只能用strToInt转换成整型比。
这里可能大多数人碰到split(“.”)这个不能切分问题,详情看我另外一篇博客Java中split以·点分割的问题。
- [LeetCode]165.Compare Version Numbers
- LeetCode 165. Compare Version Numbers
- 【LeetCode】165.Compare Version Numbers
- [leetcode] 165.Compare Version Numbers
- 【leetcode】165. Compare Version Numbers
- Leetcode 165. Compare Version Numbers
- 165. Compare Version Numbers LeetCode
- LeetCode *** 165. Compare Version Numbers
- leetcode 165. Compare Version Numbers
- LeetCode 165. Compare Version Numbers
- leetCode 165. Compare Version Numbers
- leetcode 165. Compare Version Numbers
- Leetcode 165. Compare Version Numbers
- LeetCode-165.Compare Version Numbers
- LeetCode-165. Compare Version Numbers
- 【leetcode】165. Compare Version Numbers
- [Leetcode]165. Compare Version Numbers
- LeetCode - 165. Compare Version Numbers
- 你知道Hello World程序的由来吗?
- 冒泡排序, 简单选择排序, 插入排序, 希尔排序, 快速排序 js 实现
- 洛谷P1330 封锁阳光大学
- 进程和线程关系及区别
- HDU 5922 Minimum’s Revenge 【最小生成树】
- [LeetCode]--165. Compare Version Numbers
- jQuery实现遍历单选框
- Android 实现app的版本升级(迭代)
- 【java学习】排序_Shell排序
- SpringMVC
- HDU 5926 Mr. Frog’s Game (水)
- 滚动拖拽
- Pixhawk原生固件PX4之常用函数解读
- jQuery实现遍历复选框