[M模拟] lc165. 比较版本号(字符串分割+split函数+水题)
Posted Ypuyu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[M模拟] lc165. 比较版本号(字符串分割+split函数+水题)相关的知识,希望对你有一定的参考价值。
1. 题目来源
链接:165. 比较版本号
2. 题目解析
显然,C++ 并没有 Split
函数,但其实本质实现也很简单。双指针就行。
本题,就将小数点之间的字符串转化为数字,然后对应比大小即可,由于不考虑前导零,那就非常方便了。
- 时间复杂度: O ( n ) O(n) O(n)。
- 空间复杂度: O ( 1 ) O(1) O(1)
class Solution {
public:
int compareVersion(string version1, string version2) {
for (int i = 0, j = 0; i < version1.size() || j < version2.size(); i ++ , j ++ ) {
int a = 0, b = 0;
while (i < version1.size() && version1[i] != '.') a = a * 10 + version1[i ++ ] - '0';
while (j < version2.size() && version2[j] != '.') b = b * 10 + version2[j ++ ] - '0';
if (a > b) return 1;
else if (a < b) return -1;
}
return 0;
}
};
以上是关于[M模拟] lc165. 比较版本号(字符串分割+split函数+水题)的主要内容,如果未能解决你的问题,请参考以下文章