Compare Version Numbers
来源:互联网 发布:js跨域cookie 编辑:程序博客网 时间:2024/04/30 09:53
问题来源:https://leetcode.com/problems/compare-version-numbers/
/** * * <p> * ClassName CompareVersionNumbers * </p> * <p> * Description 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 * </p> * * @author TKPad wangx89@126.com * <p> * Date 2015年3月26日 下午12:25:28 * </p> * @version V1.0.0 * */public class CompareVersionNumbers { // Input: "0.1", "0.0.1" // Output: -1 // Expected: 1 public int compareVersion(String version1, String version2) { String[] split = version1.split("\\."); String[] split2 = version2.split("\\."); // 取得小的数组的长度 int length1 = split.length; int length2 = split2.length; int length = length1 < length2 ? length1 : length2; for (int i = 0; i < length; i++) { int temp1 = Integer.valueOf(split[i]); int temp2 = Integer.valueOf(split2[i]); if (temp1 > temp2) { return 1; } else if (temp1 < temp2) { return -1; } else { if (i == length - 1) { // 这个时候以短的为标准比较完毕,开始比较长的后面的数字是否为0 if (length1 > length2) { for (int j = i + 1; j < length1; j++) { if (Integer.valueOf(split[j]) != 0) { return 1; } } } else if (length1 < length2) { for (int j = i + 1; j < length2; j++) { if (Integer.valueOf(split2[j]) != 0) { return -1; } } } } } } return 0; } public static void main(String[] args) { // int compareVersion = new CompareVersionNumbers().compareVersion("0.1", "13.37"); // int compareVersion = new CompareVersionNumbers().compareVersion("0.1", "13.37"); int compareVersion = new CompareVersionNumbers().compareVersion("1.0.0", "1"); System.out.println(compareVersion); }}
0 0
- Leetcode Compare Version Numbers
- Compare Version Numbers
- [leetcode] Compare Version Numbers
- Compare Version Numbers
- Compare Version Numbers
- [leetcode] Compare Version Numbers
- Compare Version Numbers
- Leetcode: Compare Version Numbers
- 【Leetcode】:Compare Version Numbers
- Compare Version Numbers (Java)
- 165 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----easy
- 我的vi命令集
- ADT/Eclipse字体大小、代码自动补全、代码自动对齐的设置
- tomcat7配置用户
- 下面哪段程序能够正确的实现了GBK编码字节流到UTF-8编码字节流的转换
- 【编程笔记】2012 - 2016年
- Compare Version Numbers
- 第四周项目一:三角形类的构造函数(2):默认构造函数
- 使用反射及依赖注入实现灵活的插件模式
- 数组作数据成员(1)
- (7.1.2)数据库原理之关系规范化
- java.io.FileNotFoundException: /mnt/sdcard/xxxx.mp3
- 原型污染和猴子补丁 Prototype Pollution and Monkey-Patching
- java 对称加密——密钥与加密后的数据存盘方式
- Macbook Vim高亮