• Compare Version Numbers -- LeetCode


    Compare two version numbers version1 and version2.
    If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.

    You may assume that the version strings are non-empty and contain only digits and the . character.
    The . character does not represent a decimal point and is used to separate number sequences.
    For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.

    Here is an example of version numbers ordering:

    0.1 < 1.1 < 1.2 < 13.37

    思路:使用两个指针依次扫描两个字符串,并以点为分隔来对比数字。如果一个指针已经到头了,那么数字就为0.

     1 class Solution {
     2 public:
     3     int compareVersion(string version1, string version2) {
     4         int ind1 = 0, ind2 = 0;
     5         int n1 = version1.size(), n2 = version2.size();
     6         while (ind1 < n1 || ind2 < n2)
     7         {
     8             int num1 = 0, num2 = 0;
     9             for (; ind1 < n1 && version1[ind1] != '.'; ind1++)
    10                 num1 = num1 * 10 + (int)(version1[ind1] - '0');
    11             for (; ind2 < n2 && version2[ind2] != '.'; ind2++)
    12                 num2 = num2 * 10 + (int)(version2[ind2] - '0');
    13             if (num1 < num2) return -1;
    14             else if (num1 > num2) return 1;
    15             ind1++;
    16             ind2++;
    17         }
    18         return 0;
    19     }
    20 };
  • 相关阅读:
    (一)ngxin默认虚拟主机
    centos7 搭建LNMP
    centos7 搭建安装zabbix3.0邮件告警实例(二)
    Java BitSet(位集)
    OLTP与OLAP的区别
    Cassandra-LSM树
    LSM树
    Docker
    RESTful API
    kubernetes介绍
  • 原文地址:https://www.cnblogs.com/fenshen371/p/5170468.html
Copyright © 2020-2023  润新知