lotus

贵有恒何必三更眠五更起 最无益只怕一日曝十日寒

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  1846 随笔 :: 0 文章 :: 109 评论 :: 288万 阅读

1. 题目

 

 

 

 

2. 解法

 

 

思路

这道题的考点是字符串的处理和分割,以及整数的比较。解题思路是:

  • 首先,将两个版本号按照"."分割成字符串数组,这样就可以得到每个修订号的字符串表示。
  • 然后,遍历两个数组,比较每个位置上的修订号。为了方便比较,可以将字符串转换成整数,这样就可以忽略前导零的影响。
  • 如果某个数组已经遍历完了,就用0代替,这样就可以处理不同长度的版本号的情况。
  • 如果发现某个位置上的修订号不相等,就根据它们的大小返回相应的结果。
  • 如果遍历完了都没有发现不相等的情况,就返回0,表示两个版本号相等。

具体实现

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
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;
        // 遍历两个数组,比较每个位置上的修订号
        for (int i = 0; i < Math.max(len1, len2); i++) {
            // 如果某个数组已经遍历完了,就用0代替
            int num1 = i < len1 ? Integer.parseInt(v1[i]) : 0;
            int num2 = i < len2 ? Integer.parseInt(v2[i]) : 0;
            // 比较两个数的大小
            if (num1 > num2) {
                return 1;
            } else if (num1 < num2) {
                return -1;
            }
        }
        // 如果都相等,就返回0
        return 0;
    }
}

  

3. 总结

posted on   白露~  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-04-28 深入JVM关闭与关闭钩子
2021-04-28 ShutdownHook - Java 优雅停机解决方案
2021-04-28 RocketMQ性能优化
2021-04-28 RocketMQ调优心得总结
2021-04-28 RocketMQ性能优化【实战笔记】
2021-04-28 RocketMQ在面试中那些常见问题及答案+汇总
2019-04-28 24种设计模式的通俗理解
点击右上角即可分享
微信分享提示