首页 > 其他分享 >面试必刷TOP101:22、比较版本号

面试必刷TOP101:22、比较版本号

时间:2023-11-07 13:32:36浏览次数:33  
标签:10 String 22 版本号 int -- 必刷 比较 数字

题目

面试必刷TOP101:22、比较版本号_i++

题解

public int compare (String version1, String version2) {
        // 用双指针遍历两个字符串
        //截取.之前的数字,  
        //比较数字大小,返回1、-1;如果全部比较完都没有结果,返回0
        //关键在于处理前导0:加在前面数字乘10的后面   010-->10   00010-->10
        int i=0;
        int j=0;
        while(i<version1.length()||j<version2.length()){
            long num1=0;
            long num2=0;
            //处理version1
            while(i<version1.length()&&version1.charAt(i)!='.'){//按.截取数字
                int tmp1=version1.charAt(i)-'0';
                num1=num1*10+tmp1;
                i++;
            }
            i++;//跳过.

            //处理version2
            while(j<version2.length()&&version2.charAt(j)!='.'){
                int tmp2=version2.charAt(j)-'0';
                num2=num2*10+tmp2;
                j++;
            }
            j++;//跳过.
            //比较数字
            if(num1>num2) return 1;
            if(num1<num2) return -1;
        }
        return 0;
    }

标签:10,String,22,版本号,int,--,必刷,比较,数字
From: https://blog.51cto.com/u_16244372/8231288

相关文章

  • 《MySQL》复习必刷知识点
    1.数据库SQL语言的缩写DDL:数据定义语言DataDefinitionLanguage,定义语言就是定义关系模式、删除关系、修改关系模式以及创建数据库中的各种对象,比如表、聚簇、索引、视图、函数、存储过程和触发器关键字包括:Create,Alter,Drop,TruncateDML:数据操纵语言全称是DataManipulationLa......
  • 2022ICPC济南
    目录E.IdenticalParityK.StackSort2022InternationalCollegiateProgrammingContest,JinanSitecf传送门E.IdenticalParity无论k怎么给定,k个数里面奇数个数要么和偶数相等,要么奇数比偶数多一个(因为总体的奇数个数可能比偶数个数多一个),此时再利用余数去补足即可......
  • LeetCode222.完全二叉树的节点个数
    题目描述给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第h层,则该层包含1~2h个节点。示例提交的代......
  • 日记 2023.9.22:2023 syzx 秋季训练 2
    hydrohack添加方法:添加一个空的subtask,依赖subtask1,分数可以调成10,subtask1分数调成90。上传validator.cpp。上传checker.cpp,不能依赖.ans,其实是个std。调整评测方式为testlib,配置加上validator:validator.cpp这一行。点开AC提交就可以hack了。.cc是......
  • 224.基本计算器
    224.基本计算器题目描述给你一个字符串表达式s,请你实现一个基本计算器来计算并返回它的值。注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如eval()。示例1:输入:s="1+1"输出:2示例2:输入:s="2-1+2"输出:3示例3:输入:s="(1+(4+5+2)-3)+(6+8)"输出:23提示:s......
  • 日记 2022.12.17:22年实验中学秋季训练 6
    A.gym103428m问有多少个长度为\(n\)的01串,其中有\(m\)个是1,且最长连续的1的长度恰好是\(k\)。十万。Trick1容斥系数怎么算?Trick2限制了这个串的长度和\(1\)的个数,这意味着什么?插板的东西是什么?solution错解明显不顾最长连续段限制答案是$g(n,m)=\bin......
  • 即时通讯技术文集(第22期):IM安全相关文章(Part1) [共13篇]
    ​为了更好地分类阅读52im.net总计1000多篇精编文章,我将在每周三推送新的一期技术文集,本次是第22 期。[- 1 -] 即时通讯安全篇(一):正确地理解和使用Android端加密算法[链接] http://www.52im.net/thread-216-1-1.html[摘要] 本文主要讨论针对Android这样的移动端应用开......
  • cf1322BPresent(基数排序+双指针+拆位)
    cf1322BPresent首先拆位是显然的,对于两个数a[i],a[j],除了考虑当前位上的数,我们还要考虑是否会产生进位,我们可以利用基数排序+双指针,因为我们每次都是将低位的排好序了,所以我们可以用双指针计算进位,然后分类计算一下,当前为为1的情况即可。#include<cstdio>#include<algorithm>#......
  • Golang面试题从浅入深高频必刷「2023版」
    大家好,我是阳哥。专注Go语言的学习经验分享和就业辅导。Go语言特点Go语言相比C++/Java等语言是优雅且简洁的,是我最喜爱的编程语言之一,它既保留了C++的高性能,又可以像Java,Python优雅的调用三方库和管理项目,同时还有接口,自动垃圾回收和goroutine等让人拍案叫绝的设计。有许多基于......
  • UVA1223 Editor
    题目传送门给出一个字符串\(s\),求它最长的至少出现两次的子串的长度。多组数据,\(|s|\le5000\)。不难发现答案有单调性,考虑对字符串哈希并二分,从左往右扫,用哈希表记录当前该长度每种哈希值是否出现过,出现过则可行。时间复杂度为\(\mathcal{O}(\sum|s|\log(\sum|s......