题目

代码分析

需要注意判断长度不同的情况

代码展示

class Solution {


    public int compareVersion(String version1, String version2) {

        String[] v1 = version1.split("\\.");
        String[] v2 = version2.split("\\.");

        int len=v1.length<v2.length?v1.length:v2.length;
        String[] morelong=v1.length<v2.length?v2:v1;
        int i=0;
        for(;i<len;i++)
        {
            int temp = compare(v1[i], v2[i]);
            if(temp!=0)
            {
                return temp;
            }
        }
        for(;i<morelong.length;i++)
        {
            if(Integer.parseInt(morelong[i])!=0)
            {
                return morelong==v1?1:-1;
            }
        }
        return 0;
    }

    public static int compare(String str1, String str2) {
        int s1 = Integer.parseInt(str1);
        int s2 = Integer.parseInt(str2);
        if(s1<s2)
        {
            return -1;
        }else if(s1==s2)
        {
            return 0;
        }else{
            return 1;
        }
    }
}

学习情况

1次