[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函数+水题)的主要内容,如果未能解决你的问题,请参考以下文章

字符串165. 比较版本号

Leetcode——比较版本号

leetcode中等165比较版本号

165.比较版本号

LeetCode#165-比较版本号

leetcode165. 比较版本号