NC104:比较版本号

比较版本号

http://www.nowcoder.com/questionTerminal/2b317e02f14247a49ffdbdba315459e7

示例 1:
输入: version1 = “0.1”, version2 = “1.1”
输出: -1
示例 2:
输入: version1 = “1.0.1”, version2 = “1”
输出: 1
示例 3:
输入: version1 = “7.5.2.4”, version2 = “7.5.3”
输出: -1
示例 4:
输入:version1 = “1.01”, version2 = “1.001”
输出:0
解释:忽略前导零,“01” 和 “001” 表示相同的数字 “1”。
示例 5:
输入:version1 = “1.0”, version2 = “1.0.0”
输出:0
解释:version1 没有第三级修订号,这意味着它的第三级修订号默认为 “0”。
提示:
版本字符串由以点 (.) 分隔的数字字符串组成。这个数字字符串可能有前导零。
版本字符串不以点开始或结束,并且其中不会有两个连续的点。

代码:

public class Solution {
    /**
     * 比较版本号
     * @param version1 string字符串 
     * @param version2 string字符串 
     * @return int整型
     */
    public int compare (String version1, String version2) {
        // write code here
        String[] str1=version1.split("\\.");
        String[] str2=version2.split("\\.");
        int n=Math.max(str1.length,str2.length);
        for(int i=0;i<n;i++){
            int x= i<str1.length ? Integer.valueOf(str1[i]) : 0 ;
            int y= i<str2.length ? Integer.valueOf(str2[i]) : 0 ;
            if(x<y){
                return -1;
            }
            else if(x>y){
                return 1;
            }
        }
        return 0;
    }
}
名企高频面试算法题解 文章被收录于专栏

牛客题霸 - 程序员面试高频题 - 题解

全部评论
这不能过吧?
点赞 回复 分享
发布于 2021-09-26 23:22

相关推荐

秋招要不然改名为秋季实习呢??这都什么风气
代码主理人:我现在就是在汇川实习,md实习都要加班。如果是校招的实习会签好三方而已。而且实习不抵试用期,就是试用期不打折而已,如果提前拿到毕业证可以提前签劳动合同
秋招有哪些公司要求提前实...
点赞 评论 收藏
分享
Hyh_111:像这种hr就不用管了,基本没啥实力,换一个吧
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务