首页 > 编程语言 >#yyds干货盘点# LeetCode程序员面试金典:比较版本号

#yyds干货盘点# LeetCode程序员面试金典:比较版本号

时间:2023-05-20 22:00:45浏览次数:43  
标签:yyds 下标 version1 version2 版本号 金典 修订 String

1.简述:

给你两个版本号 version1 和 version2 ,请你比较它们。

版本号由一个或多个修订号组成,各修订号由一个 '.' 连接。每个修订号由 多位数字 组成,可能包含 前导零 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,2.5.33 和 0.1 都是有效的版本号。

比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 忽略任何前导零后的整数值 。也就是说,修订号 1 和修订号 001 相等 。如果版本号没有指定某个下标处的修订号,则该修订号视为 0 。例如,版本 1.0 小于版本 1.1 ,因为它们下标为 0 的修订号相同,而下标为 1 的修订号分别为 0 和 1 ,0 < 1 。

返回规则如下:

如果 version1 > version2 返回 1,

如果 version1 < version2 返回 -1,

除此之外返回 0。

 

示例 1:

输入:version1 = "1.01", version2 = "1.001"

输出:0

解释:忽略前导零,"01" 和 "001" 都表示相同的整数 "1"

示例 2:

输入:version1 = "1.0", version2 = "1.0.0"

输出:0

解释:version1 没有指定下标为 2 的修订号,即视为 "0"

示例 3:

输入:version1 = "0.1", version2 = "1.1"

输出:-1

解释:version1 中下标为 0 的修订号是 "0",version2 中下标为 0 的修订号是 "1" 。0 < 1,所以 version1 < version2

2.代码实现:

class Solution {
    public int compareVersion(String version1, String version2) {
        String[] v1 = version1.split("\\.");
        String[] v2 = version2.split("\\.");
        for (int i = 0; i < v1.length || i < v2.length; ++i) {
            int x = 0, y = 0;
            if (i < v1.length) {
                x = Integer.parseInt(v1[i]);
            }
            if (i < v2.length) {
                y = Integer.parseInt(v2[i]);
            }
            if (x > y) {
                return 1;
            }
            if (x < y) {
                return -1;
            }
        }
        return 0;
    }
}

标签:yyds,下标,version1,version2,版本号,金典,修订,String
From: https://blog.51cto.com/u_15488507/6318099

相关文章

  • Q&A:IDEA环境下pom文件依赖引入成功,但提示版本号不存在
    Question: IDEA环境下pom文件依赖引入成功,但提示版本号不存在。Answer: 网络资料显示问题原因:可能是项目依赖中有些jar没有下载完整IDEA2020版本在maven构建时存在的BUG方案一: 在当前项目命令行mvnidea:idea,检查未下载完的jar并下载; 菜单选择【file】->【inva......
  • #yyds干货盘点# LeetCode程序员面试金典:将有序数组转换为二叉搜索树
    题目:给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过1」的二叉树。 示例1:输入:nums=[-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]解释:[0,-10,5,null,-3,null,9]......
  • #yyds干货盘点# LeetCode程序员面试金典:最大间距
    1.简述:给定一个无序的数组 nums,返回数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于2,则返回0。您必须编写一个在「线性时间」内运行并使用「线性额外空间」的算法。 示例 1:输入:nums=[3,6,9,1]输出:3解释:排序后的数组是[1,3,6,9],其中相邻元素(3,6)......
  • #yyds干货盘点# LeetCode程序员面试金典: 二叉树的层序遍历 II
    1.简述:给你二叉树的根节点root,返回其节点值自底向上的层序遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历) 示例1:输入:root=[3,9,20,null,null,15,7]输出:[[15,7],[9,20],[3]]示例2:输入:root=[1]输出:[[1]]示例3:输入:root=[]输出:[]2.代码实现:classSolution......
  • # yyds干货盘点 # 使用Python复制某文件夹下子文件夹名为"数据"文件夹下的所有以"DD"
    大家好,我是皮皮。一、前言前几天在Python最强王者群【魏哥】问了一个Python自动化办公处理的问题,这里拿出来给大家分享下。二、实现过程这里他自己有一个原始代码,但是实现的效果不尽人意。importshutilimportos#importsys#导入sys模块#sys.setrecursionlimit(1000)#......
  • #yyds干货盘点#灵活的 Node.js 多功能爬虫库 —— x-crawl
    x-crawlx-crawl是一个灵活的Node.js多功能爬虫库。灵活的使用方式和众多的功能可以帮助您快速、安全、稳定地爬取页面、接口以及文件。如果你也喜欢x-crawl,可以给 x-crawl存储库 点个star支持一下,感谢大家的支持!GitHub:https://github.com/coder-hxl/x-crawl特征异步同步......
  • #yyds干货盘点#Tauri 与 Electron
    Tauri什么是Tauri?Tauri是一个为所有主流桌面平台构建小型、快速二进制文件的框架。开发人员可以集成任何编译成HTML、JS和CSS的前端框架来构建他们的用户界面。应用程序的后端是一个Rust二进制文件,具有前端可以与之交互的API。安装方式Xcode$xcode-select--installRu......
  • #yyds干货盘点# LeetCode程序员面试金典:相交链表
    1.简述:给你两个单链表的头节点 headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交:题目数据保证整个链式结构中不存在环。注意,函数返回结果后,链表必须保持其原始结构。自定义评测:评测系统的输入......
  • #yyds干货盘点# LeetCode程序员面试金典:从中序与后序遍历序列构造二叉树
    题目:给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例1:输入:inorder=[9,3,15,20,7],postorder=[9,15,7,20,3]输出:[3,9,20,null,null,15,7]示例2:输入:inorder=[-1],postorder......
  • 如何查看CUDNN版本号,如果cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_
    https://github.com/pjreddie/darknet/issues/2356#issuecomment-756701965请看这个issuesudocpcuda/include/cudnn*.h/usr/local/cuda/includesudocpcuda/lib64/libcudnn*/usr/local/cuda/lib64sudochmoda+r/usr/local/cuda/include/cudnn.h/usr/local/cuda/......