leetcode Compare Version Numbers
2015-05-30 21:57
387 查看
题目链接点击打开链接
这个题目思想不难。但是测试用例的比较条件非常苛刻。我的错误几乎是所有的出错可能了。我成排雷队员了
所犯错误
1输入不一样长
2输入"01", "1
3Input: "1.0", "1"
这里还有一个java的问题
如果java里面调用split。切割的标志是. 或者是|正确的用法是\\. \\|
因为. 和| 在正则表达式里面有特殊的含义,所以要转义一下。而转义字符\本身又要转义所以就成了现在这个奇怪的样子
这个题目思想不难。但是测试用例的比较条件非常苛刻。我的错误几乎是所有的出错可能了。我成排雷队员了
所犯错误
1输入不一样长
2输入"01", "1
3Input: "1.0", "1"
这里还有一个java的问题
如果java里面调用split。切割的标志是. 或者是|正确的用法是\\. \\|
因为. 和| 在正则表达式里面有特殊的含义,所以要转义一下。而转义字符\本身又要转义所以就成了现在这个奇怪的样子
public class Solution { public int compareVersion(String version1, String version2) { int result=0; String v1s[]=version1.split("\\."); String v2s[]=version2.split("\\."); int tempIntV1; int tempIntV2; int i=0; for(i=0;i<v1s.length&&i<v2s.length;i++) { tempIntV1=Integer.parseInt(v1s[i]); tempIntV2=Integer.parseInt(v2s[i]); if(tempIntV1>tempIntV2) { result=1; break; } else if(tempIntV1<tempIntV2) { result=-1; break; } } if(result==0) { if(v1s.length>v2s.length) { for(;i<v1s.length;i++) { if(Integer.parseInt(v1s[i])!=0) { result=1; break; } } } else if(v1s.length<v2s.length) { for(;i<v2s.length;i++) { if(Integer.parseInt(v2s[i])!=0) { result=-1; break; } } } } return result; } }
相关文章推荐
- 从历史的角度谈变化
- 高斯滤波器
- mahout 把文本转换为向量
- HDU 2001 计算两点间的距离
- 7.const指针问题
- J2EE中的JDBC
- 6.任务依赖问题(转载)
- 利用java反射机制实现读取excel表格中的数据
- 例子Architecting Android…The clean way?----代码分析
- 使用matlab遇到的问题
- 利用java反射机制实现读取excel表格中的数据
- HDU 4276
- MySQL 水平拆分(读书笔记整理)
- C++引用之引用的使用
- 【开发-Web】Jsp与Servlet的区别?
- Zabbix服务器安装问题收集(UBUNTU)
- 第十二周项目三日期时间类
- Hive JOIN使用详解
- 对话框
- PHP Sessions