您的位置:首页 > 其它

leetcode Compare Version Numbers

2015-05-30 21:57 387 查看
题目链接点击打开链接

这个题目思想不难。但是测试用例的比较条件非常苛刻。我的错误几乎是所有的出错可能了。我成排雷队员了

所犯错误

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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: