首页 > 其他分享 >NC 比较版本号

NC 比较版本号

时间:2024-08-31 20:23:20浏览次数:13  
标签:version1 version2 版本号 修订 NC num2 比较 num1

系列文章目录


文章目录


前言

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给你的码吧。
在这里插入图片描述


描述
牛客项目发布项目版本时会有版本号,比如1.02.11,2.14.4等等
现在给你2个版本号version1和version2,请你比较他们的大小
版本号是由修订号组成,修订号与修订号之间由一个"."连接。1个修订号可能有多位数字组成,修订号可能包含前导0,且是合法的。例如,1.02.11,0.1,0.2都是合法的版本号
每个版本号至少包含1个修订号。
修订号从左到右编号,下标从0开始,最左边的修订号下标为0,下一个修订号下标为1,以此类推。

比较规则:
一. 比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较忽略任何前导零后的整数值。比如"0.1"和"0.01"的版本号是相等的
二. 如果版本号没有指定某个下标处的修订号,则该修订号视为0。例如,“1.1"的版本号小于"1.1.1”。因为"1.1"的版本号相当于"1.1.0",第3位修订号的下标为0,小于1
三. version1 > version2 返回1,如果 version1 < version2 返回-1,不然返回0.

在这里插入图片描述

import java.util.*;
public class Solution {
    public int compare (String version1, String version2) {
        int n1 = version1.length();
        int n2 = version2.length();
        int i = 0, j = 0;
        //直到某个字符串结束
        while(i < n1 || j < n2){
            long num1 = 0;
            //从下一个点前截取数字
            while(i < n1 && version1.charAt(i) != '.'){ 
                num1 = num1 * 10 + (version1.charAt(i) - '0');
                i++;
            }
            //跳过点
            i++; 
            long num2 = 0;
            //从下一个点前截取数字
            while(j < n2 && version2.charAt(j) != '.'){ 
                num2 = num2 * 10 + (version2.charAt(j) - '0');
                j++;
            }
            //跳过点
            j++; 
            //比较数字大小
            if(num1 > num2) 
                return 1;
            if(num1 < num2)
                return -1;
        }
        //版本号相同
        return 0; 
    }
}

标签:version1,version2,版本号,修订,NC,num2,比较,num1
From: https://blog.csdn.net/pleaseprintf/article/details/141683708

相关文章

  • 科技小课堂|解锁QNAP Hybrid Backup Sync,你的混合云备份新纪元
    Hey科技爱好者们,......
  • Swift concurrency 6 — TaskGroup的理解与使用
    在SwiftUI中,TaskGroup是一种处理并发任务的工具,特别适用于需要并发执行多个独立任务并在它们都完成后进行进一步处理的场景。TaskGroup提供了一种结构化并发的方法,使得并行任务的启动、管理和结果收集变得更加简便和安全。一、TaskGroup的基本概念TaskGroup是Swift并......
  • [postgres]使用pgbench进行基准测试
    前言pgbench是一种在postgres上进行基准测试的简单程序,一般安装后就会自带。pgbench可以再并发的数据库绘画中一遍遍地进行相同序列的SQL语句,并且计算平均事务率。测试准备既然要测postgres,肯定要先有个postgres。安装过程略过。一些环境信息:postgres版本:15.3,安装完成后默认......
  • Hausdorff Distance 和 Euclidean Distance Mean欧氏距离
    importtorchimporttorch.nnasnnclassHausdorffDistanceLoss(nn.Module):def__init__(self):super(HausdorffDistanceLoss,self).__init__()defforward(self,pred,target):#扩展为(B,N,1,D)和(B,1,M,D)pred=pred......
  • 【Material-UI】Text Field中的 Performance 优化详解
    文章目录一、TextField组件概述1.组件介绍2.性能挑战二、全局样式注入行为的优化1.问题的根源2.禁用全局样式注入3.自定义全局样式三、实际场景中的性能优化应用1.大规模表单中的优化2.动态表单生成中的优化3.提升用户体验四、最佳实践与注意事项1.谨慎使......
  • 孤独症寄宿学校比较好的学校有哪些?
    在探讨孤独症寄宿学校的选择时,我们不难发现,市场上涌现出了一批专业且富有成效的机构,它们为孤独症儿童提供了全方位的支持与帮助。其中,星贝育园康复中心以其独特的优势脱颖而出,成为众多家庭信赖的选择。星贝育园康复中心是目前全国规模较大的自闭症全托寄宿制儿童康复训练机构......
  • python并发与并行(十一) ———— 让asyncio的事件循环保持畅通,以便进一步提升程序的响
    前一篇blog说明了怎样把采用线程所实现的项目逐步迁移到asyncio方案上面。迁移后的run_tasks协程,可以将多份输入文件通过tail_async协程正确地合并成一份输出文件。importasyncio#OnWindows,aProactorEventLoopcan'tbecreatedwithin#threadsbecauseittriestoregi......
  • python并发与并行(十) ———— 结合线程与协程,将代码顺利迁移到asyncio
    在前一篇中,我们用asyncio模块把通过线程来执行阻塞式I/O的TCP服务器迁移到了协程方案上面。当时我们一下子就完成了迁移,而没有分成多个步骤,这对于大型的项目来说,并不常见。如果项目比较大,那通常需要一点一点地迁移,也就是要边改边测,确保迁移过去的这一部分代码的效果跟原来相同。为......
  • python并发与并行(九) ———— 用asyncio改写通过线程实现的IO
    知道了协程的好处之后,我们可能就想把现有项目之中的代码全都改用协程来写,于是有人就担心,这样修改起来,工作量会不会比较大呢?所幸Python已经将异步执行功能很好地集成到语言里面了,所以我们很容易就能把采用线程实现的阻塞式I/O操作转化为采用协程实现的异步I/O操作。在这里我们要补充......
  • 【全网独家】OpenCV: 像素巡访(at、ptr) 介绍与应用(代码+测试部署)
    OpenCV:像素巡访(at、ptr)介绍与应用介绍在图像处理过程中,直接操作图像的每个像素值是一个非常常见的需求。OpenCV提供了多种方法来访问和修改图像像素,其中at和ptr是两种高效的方法。at方法:适用于小规模的像素访问操作,提供了方便的接口。ptr方法:更适合大规模......