题目链接点击打开链接
这个题目思想不难。但是测试用例的比较条件非常苛刻。我的错误几乎是所有的出错可能了。我成排雷队员了
所犯错误
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;
}
}