LeetCode(68)-Compare Version Numbers
2016-04-23 12:19
513 查看
题目:
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; } }
相关文章推荐
- LeetCode(68)-Compare Version Numbers
- 文章标题
- CentOS安装NodeJS及Express开发框架
- Android PullToRefresh (GridView 下拉刷新上拉加载)
- 数据结构-栈的实现之迷宫解密
- Android PullToRefresh (ListView GridView 下拉刷新) 使用详解
- 哈夫曼编码
- windows 主题壁纸更换
- 机房水题欢乐赛 2016-04-22 下午
- c++栈类,以数组为存储结构。
- 前端经常使用插件使用文档 以及demo
- oracle 11g+win7 安装
- Collection、List、Set、Map之间的关系
- Sql Server强制清空所有数据表中的记录
- Sql Server强制清空所有数据表中的记录
- od 逆向破解口诀
- 刷题第四天:南邮NOJ【1010数的计算】
- [C++]Operation on Relations
- Percona Toolkit 使用
- C++ for循环跳过某一项求和