zoukankan      html  css  js  c++  java
  • leetcode[165] Compare Version Numbers

    比较两个版本大小。

    思路:用点分隔,判断相应间隔的大小。因为存在长短的问题,还有0的存在,所以如果一个到末尾了,另一个没有的话,不妨假设到末尾的那个版本之后的间隔的值都为“0”。

    其中用到了stoi()函数。如果间隔中的版本相同,并且都已经到了末尾之后了,那么就是相等。否则,一直判断直到两个版本都结束为止。

    class Solution {
    public:
        int compareVersion(string version1, string version2) {
            if (version1 == version2) return 0;
            
            int start1 = 0, cnt1 = 0, start2 = 0, cnt2 = 0;
            string sub1, sub2;
            while(1)
            {
                sub1.clear(); sub2.clear();
                // 找version1中的子串,如到末尾了,那就赋“0”
                cnt1 = 0;
                while(start1 + cnt1 < version1.size() && version1[start1+cnt1] != '.')
                {
                    cnt1++;
                }
                if (start1 < version1.size())
                    sub1 = version1.substr(start1, cnt1);
                
                cnt2 = 0;
                while(start2 + cnt2 < version2.size() && version2[start2 + cnt2] != '.')
                {
                    cnt2++;
                }
                if (start2 < version2.size())
                    sub2 = version2.substr(start2, cnt2);
                    
                if (sub1.size() == 0) sub1 = "0";
                if (sub2.size() == 0) sub2 = "0";
                
                // 不包括'.',所以要加1
                start1 = start1 + cnt1 + 1;
                start2 = start2 + cnt2 + 1;
                
                if (stoi(sub2) > stoi(sub1)) return -1;
                if (stoi(sub1) > stoi(sub2)) return 1;
                // 子串相等并且都到了末尾才是相等,否则有的可能存在0.0.1
                if (stoi(sub1) == stoi(sub2) && start1 >= version1.size() && start2 >= version2.size()) return 0;
            }
        }
    };
  • 相关阅读:
    【math】共线性的影响分析
    【colab】挂载google网盘
    【ML】非均衡样本处理
    phpwind < v6 版本命令执行漏洞
    Uc爆破工具
    shodan:黑客搜索引擎
    webshell下执行命令脚本汇集
    Android利用Fiddler进行网络数据抓包
    150个在线代理站点
    PHP filesystem attack vectors
  • 原文地址:https://www.cnblogs.com/higerzhang/p/4176336.html
Copyright © 2011-2022 走看看