LeetCode(165): Compare Version Numbers

Compare Version Numbers: 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
题意:按照题目给定的比较方式,比较给定的两个字符串所表示的版本号。
思路:以 . 为界先比较 . 前的数的大小,分出大小就输出,出现相等的情况要比较 . 后的数。分别将前后的字符串转换成整数进行比较。 
代码:
public int compareVersion(String version1, String version2) {
          long a = 0,b=0;
          int len1 = version1.length(),len2 = version2.length();
          int i=0,j=0;
          while(i<len1 || j< len2){
              a=0;b=0;
              while(i<len1&&version1.charAt(i)!='.'){
                  a = a*10+version1.charAt(i) - '0';
                  ++i;
              }
              ++i;
              while(j<len2 && version2.charAt(j)!='.'){
                  b = b*10 + version2.charAt(j)-'0';
                  ++j;
              }
              ++j;
              if(a>b) return 1;
              if(a<b) return -1;
          }
          return 0;
           
        }
原文地址:https://www.cnblogs.com/Lewisr/p/5115140.html