import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 比较版本号
* @param version1 string字符串
* @param version2 string字符串
* @return int整型
*/
public int compare (String version1, String version2) {
// write code here
int n1=version1.length();
int n2=version2.length();
int i=0,j=0;
while(i<n1 || j<n2){
long num1=0;
while(i<n1 && version1.charAt(i) != '.'){
num1 = num1*10 + version1.charAt(i++) - '0';
}
i++;
long num2=0;
while(j<n2 && version2.charAt(j)!='.'){
num2 = num2*10 + version2.charAt(j++) - '0';
}
j++;
if(num1>num2){
return 1;
}
if(num2>num1){
return -1;
}
}
return 0;
}
}
双指针,从前向后遍历两个字符串,由于存在先导0,所以先转为数字再比较,然后跳过点‘.’,而如果版本号没有指定某个下标处的修订号,则默认为0.


京公网安备 11010502036488号