java中split(“.“)失效问题

来源:比较版本号_牛客题霸_牛客网

在写到这道算法题的时候,发现一个问题,

String[] left=version1.split(".");

返回结果为空,经过查阅得知,是split中的正则表达式里的问题,这个 . 代表的意思是任意字符,所以不能用 . 来进行分隔,需要用这种写法:

String[] left=version1.split("\\.");

同时,字符 | *  + 前面都得加上 \

而如果是“”,就需要写成 \\

算法题目:

描述
牛客项目发布项目版本时会有版本号,比如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.数据范围:
1
<
=
�
�
�
�
�
�
�
1.
�
�
�
�
�
ℎ
,
�
�
�
�
�
�
�
2.
�
�
�
�
�
ℎ
<
=
1000
1<=version1.length,version2.length<=1000
version1 和 version2 的修订号不会超过int的表达范围,即不超过 32 位整数 的范围进阶: 空间复杂度 
�
(
1
)
O(1) , 时间复杂度 
�
(
�
)
O(n)
示例1
输入:
"1.1","2.1"
复制
返回值:
-1
复制
说明:
version1 中下标为 0 的修订号是 "1",version2 中下标为 0 的修订号是 "2" 。1 < 2,所以 version1 < version2,返回-1示例2
输入:
"1.1","1.01"
复制
返回值:
0
复制
说明:
version2忽略前导0,为"1.1",和version相同,返回0          
示例3
输入:
"1.1","1.1.1"
复制
返回值:
-1
复制
说明:
"1.1"的版本号小于"1.1.1"。因为"1.1"的版本号相当于"1.1.0",第3位修订号的下标为0,小于1,所以version1 < version2,返回-1          
示例4
输入:
"2.0.1","2"
复制
返回值:
1
复制
说明:
version1的下标2>version2的下标2,返回1          
示例5
输入:
"0.226","0.36"
复制
返回值:
1
复制
说明:
226>36,version1的下标2>version2的下标2,返回1          

我的暴力题解:

import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可** 比较版本号* @param version1 string字符串* @param version2 string字符串* @return int整型*/public int compare (String version1, String version2) {String[] left = version1.split("\\.");String[] right = version2.split("\\.");int l = left.length, r = right.length;int count = Math.min(l, r);for (int i = 0; i < count; i++) {int a = Integer.parseInt(left[i]);int b = Integer.parseInt(right[i]);if (a > b)return 1;if (a < b)return -1;}if (l == r)return 0;if (l > r) {for (int i = r; i < 3; i++) {if (Integer.parseInt(left[i]) != 0) {return 1;}}}if (l < r) {for (int i = l; i < 3; i++) {if (Integer.parseInt(right[i]) != 0) {return -1;}}}return 0;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/788037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解数据结构第二弹——二叉树(2)——堆排序及其时间复杂度

看这篇前请先把我上一篇了解一下&#xff1a;深入理解数据结构第一弹——二叉树&#xff08;1&#xff09;——堆-CSDN博客 前言&#xff1a; 相信很多学习数据结构的人&#xff0c;都会遇到一种情况&#xff0c;就是明明最一开始学习就学习了时间复杂度&#xff0c;但是在后期…

12313124

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话&#xff1a; 知不足而奋进&#xff0c;望远山而前行&am…

【与C++的邂逅】---- 函数重载与引用

关注小庄 顿顿解馋(▿) 喜欢的小伙伴可以多多支持小庄的文章哦 &#x1f4d2; 数据结构 &#x1f4d2; C 引言 : 上一篇博客我们了解了C入门语法的一部分&#xff0c;今天我们来了解函数重载&#xff0c;引用的技术&#xff0c;请放心食用 ~ 文章目录 一. &#x1f3e0; 函数重…

【JavaWeb】Day31.SpringBootWeb请求响应——分层解耦(二)

3.IOC&DI 3.1 IOC&DI入门 完成Controller层、Service层、Dao层的代码解耦 思路&#xff1a; 1. 删除Controller层、Service层中new对象的代码 2. Service层及Dao层的实现类&#xff0c;交给IOC容器管理 3. 为Controller及Service注入运行时依赖的对象 Controller程序…

隐私计算实训营第六讲-隐语PIR介绍及开发实践

隐私计算实训营第六讲-隐语PIR介绍及开发实践 文章目录 隐私计算实训营第六讲-隐语PIR介绍及开发实践1.隐语实现PIR总体介绍1.1按服务器数量分类1.2按查询类型分类 2. Index PIR - SealPIR3. Keyword PIR - Labeled PSI4.隐语PIR功能分层5.隐语PIR后续计划PIR协议开发PIR调用框…

JavaScript 数组元素交互最优解

利用 ES6 解构赋值&#xff1a; let arr [1, 2, 3, 4, 5];// 交互下标 1,4 元素的值 [arr[1], arr[4]] [arr[4], arr[1]];// 输出&#xff1a; [1, 5, 3, 4, 2] console.log(arr);浏览器控制台效果&#xff1a;

Node.js-知识点学习总结归纳

Node.js-知识点学习总结归纳 安装nodenode运行方式通过Node.js直接运行js文件&#xff08;也就不用通过网页html了&#xff09;绝对路径调用:相对路径调用&#xff1a;直接运行js命令&#xff1a; Vscode控制台使用node运行js文件 安装node 这个就不用讲了吧&#xff0c;网上搜…

【Python全栈】Python实现交通信号灯

文章目录 一、实现过程1. 导入必要的库和初始化Pygame2. 定义颜色和屏幕尺寸3. 创建交通信号灯、行人和车辆类4. 定义绘制函数draw5. 实例化交通信号灯、行人和车辆对象6. 创建并启动线程7. 游戏循环 二、代码 一、实现过程 1. 导入必要的库和初始化Pygame 导入Pygame库并初始…

硬件知识:点亮led

怎么做 1、看原理图&#xff0c;去顶控制LED的引脚 1.1led 1.2gpio 1、使能gpio模块&#xff0c;设置Power/clock control,向gpio模块提供电源和时钟 2.设置引脚模式为gpio模式 3.设置方向output/input4、读取引脚&#xff0c;获得当前电频到底是低电平/高电平&#xff1b;这…

ES集群部署的核心步骤

文章目录 引言I ES集群部署前期工作II 部署ES2.1 配置安全组2.2 创建ES用户和组2.3 下载安装ES2.4 修改内存相关配置III es集群添加用户安全认证功能3.1 生成 elastic-certificates.p123.2 创建 Elasticsearch 集群密码3.2 设置kibana的 elasticsearch帐号角色和密码3.3 logsta…

maya 遍历所有子节点

目录 MEL遍历所有子节点 python遍历所有子节点 MEL遍历所有子节点 // 定义一个递归函数来遍历所有子节点 proc traverseAllChildren(string $node) {// 获取直接子节点string $children[] listRelatives -children $node;// 遍历所有直接子节点for ($child in $children) {…

社会公益第三方评估

本文由群狼调研&#xff08;公众项目第三方评估&#xff09;出品&#xff0c;欢迎转载&#xff0c;请注明出处。社会公益第三方评估是由独立的组织或机构进行的对社会公益项目的评估和监督。这些第三方评估机构通常是独立于项目实施者和受益者的中立机构&#xff0c;旨在提供客…

LeetCode热题Hot100 - 正则表达式匹配

一刷~ 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 . 和 * 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不是部分字符串。 有几个用例超时&#xff0c;容我三思…

数据库:Redis数据库

一、非关系型数据库 1.什么是非关系型数据库 非关系型数据库&#xff08;Non-relational Database&#xff09;又称NoSQL数据库是一种不同于传统关系型数据库管理系统&#xff08;RDBMS&#xff09;的数据存储解决方案。NoSQL这个术语最初意味着"Not Only SQL"&…

静态资源不加载是否会影响性能吗

静态资源不加载或加载缓慢确实可能会影响网站或应用的性能。静态资源&#xff0c;如CSS、JavaScript、图片等&#xff0c;是网页的重要组成部分&#xff0c;它们负责网页的样式、交互和视觉效果。 如果静态资源不加载或加载失败&#xff0c;用户可能会看到一个没有样式或交互的…

1999-2022年上市公司员工人数数据

1999-2022年上市公司员工人数数据 1、时间&#xff1a;1999-2022年 2、指标&#xff1a;证券代码、时间、员工人数 3、来源&#xff1a;整理自csmar 4、范围&#xff1a;上市公司 5、指标解释&#xff1a; 上市公司员工人数是衡量公司规模和发展状的重要指标。该数据直接…

阿赵UE学习笔记——24、动画播放控制

阿赵UE学习笔记目录   大家好&#xff0c;我是阿赵。   继续学习虚幻引擎的使用。关于UE的动画系统&#xff0c;之前学习了很多&#xff0c;包括动画合成或者动画蒙太奇等&#xff0c;实际上最后得到的都是一个动画片段。那么这些动画片段&#xff0c;是需要怎样播放控制呢…

babyAGI(6)-babyCoder源码阅读2任务描述部分

废话不多说&#xff0c;我们直接看task的prompt 这里需要注意的是&#xff0c;每个openai_call的temperature都不相同&#xff0c;这也是开发程序时需要调整和关注的一点 1. 初始化代码任务agent 作为babycoder的第一个angent&#xff0c;整个prompt编写的十分值得学习 整个p…

Taro多行文本最多展示5行,超出“查看更多”展示,点击弹层

Taro中&#xff0c;页面需求&#xff1a; 多行文本&#xff0c;展示最多展示5行&#xff0c;超出5行&#xff0c;展示“查看更多”按钮&#xff0c;点击弹层展示文本详细信息。 弹层代码就不说了&#xff0c;着重说一下怎么获取区域高度&#xff5e; 1.区域设置max-height&am…

ArcGIS Pro打不开Excel?Microsoft驱动程序安装不上?

刚用ArcGIS pro的朋友们可能经常在打开xls或者xlsx文件的时候都会提示&#xff0c;未安装所需的Microsoft驱动程序。 怎么办呢&#xff1f;当然&#xff0c;按照提示装一下驱动就会好吗&#xff1f;有什么状况会出现&#xff1f;有什么临时替代方案呢&#xff1f; 全文目录&a…