LeetCode(68)-Compare Version Numbers
2016-04-23 12:19
537 查看
题目:
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 ; for(int i = 0;i < n;i++){ try{ result[i] = Integer.parseInt(ss[i]); }catch(Exception e){ } } return result; } }
相关文章推荐
- centos 手动安装网卡驱动
- 只有程序员看的懂的面试圣经|如何拿下编程面试
- 下一次技术面试时要问的 3 个重要问题
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- PHP程序员面试 切忌急功近利(更需要注重以后的发展)
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法