0
点赞
收藏
分享

微信扫一扫

比较版本号

书坊尚 2021-09-21 阅读 83
今日算法
题目描述:
示例 1:
示例 2:
示例 3:
示例 4:
题目分析:
  1. 比较字符串version1,version2中每个"."分割段“数字”的大小,如果version1 > version2则返回1,version1 < version2则返回-1.相等则返回0.
思路:
代码实现:
class Solution {
    public int result = 0;
    public int compareVersion(String version1, String version2) {
        String[] char_l = version1.split("\\.");
        String[] char_r = version2.split("\\.");
        int l = char_l.length;
        int r = char_r.length;
        int idx = Math.min(l, r);
        int i = 0;
        for (; i < idx; i++) {
            if (Integer.valueOf(char_l[i]) > Integer.valueOf(char_r[i])) {
                result = 1;
                break;
            } else if (Integer.valueOf(char_l[i]) < Integer.valueOf(char_r[i])) {
                result = -1;
                break;
            }
        }
        // 相同长度内的所有元素都相同
        if (i == idx) { 
        // 判断多出来的元素是否大于0
            if (l > r) { 
                while (i < l) {
                    if (Integer.valueOf(char_l[i++]) > 0) {
                        return 1;
                    }
                }
            } else if (l < r) {
                while (i < r) {
                    if (Integer.valueOf(char_r[i++]) > 0) {
                        return -1;
                    }
                }
            }
        }
        return result;
    }
}
举报

相关推荐

0 条评论