【Leetcode】165. Compare Version Numbers

来源:互联网 发布:淘宝客服常见问题解答 编辑:程序博客网 时间:2024/06/05 15:38

思路:

(1)以点号分割得到对应的数组v1和v2,不能写成.split("."),一个单独的"."表示任意字符。"\\."实际上被转义为两次,"\\"被转换为一个"\"字符,然后"\."表示对点字符进行转义,使点字符就表示字符".",而不使用它在正则表达式中的特殊意义。

(2)求数组v1和v2的较大长度len。设置两个int型数组V1和V2,遍历两个数组,若索引i不小于数组长度,则在V1或V2的对应位置0,否则,将v1和v2的对应位字符串转int型存入V1或V2的对应位。再比较V1和V2的对应位,若V1大,则返回1;若V2大,则返回-1。遍历完毕则返回0。

public class Solution {    public int compareVersion(String version1, String version2) {        String[] v1 = version1.split("\\.");        String[] v2 = version2.split("\\.");        int len1 = v1.length;        int len2 = v2.length;        int len = Math.max(len1, len2);        int[] V1 = new int[len];        int[] V2 = new int[len];        for (int i = 0; i < len; i++) {            V1[i] = i >= len1 ? 0 : Integer.parseInt(v1[i]);            V2[i] = i >= len2 ? 0 : Integer.parseInt(v2[i]);            if (V1[i] > V2[i])                return 1;            else if (V1[i] < V2[i])                return -1;        }        return 0;    }}

1 0