本文主要是介绍【比较版本号】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
比较版本号
- 一、题目
- 二、方法一:s.split()+parseInt()
- 三、方法二:优化空间复杂度——双指针
- 四、补充:charCodeAt()函数
一、题目
二、方法一:s.split()+parseInt()
使用split将版本号的字符串拆分为数组,再将数组中的每一项字符串用parseInt()方法转换为整数,parseInt()方法会自动忽略字符串前面的0转换为整数
设n为version1的长度,m为version2的长度,该题耗费的时间复杂度为O(n+m)或者O(max(n,m)),空间复杂度为O(n+m)
三、方法二:优化空间复杂度——双指针
该方法可以不用存储,在分割版本号的同时解析出修订号进行比较
四、补充:charCodeAt()函数
返回一个数字,该数字指示给定索引处字符的Unicode值。如果给定索引不在小于字符串长度的0到1之间,则返回NaN。
x=x*10+version1[a].charCodeAt()-'0'.charCodeAt()
version1[i].charCodeAt():获取字符串 version1 中索引为 i 的字符的 Unicode 编码值。
‘0’.charCodeAt():获取字符 ‘0’ 的 Unicode 编码值。
version1[i].charCodeAt() - ‘0’.charCodeAt():将字符的编码值减去 ‘0’ 的编码值,这样就可以得到该字符所表示的数字(因为 ‘0’ 到 ‘9’ 的编码值是连续的)。
x * 10:将当前已经解析的数字乘以 10,这样就可以将数字向左移动一位,为下一个数字腾出位置。
x * 10 + version1[i].charCodeAt() - ‘0’.charCodeAt():将上一步得到的数字与当前字符所表示的数字相加,这样就得到了新的数字。
这篇关于【比较版本号】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!