郑州网站建设兄长好,本地营销策划公司,百度写一篇文章多少钱,北京网站搭建服务商一.双指针遍历截取
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定#xff0c;请勿修改#xff0c;直接返回方法规定的值即可** 比较版本号* param version1 string字符串 * param version2 string字符串 * return int整型*/public …一.双指针遍历截取
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** 比较版本号* param version1 string字符串 * param version2 string字符串 * return int整型*/public int compare (String version1, String version2) {// write code here/*** 第二个大返回-1* 第一个大返回1*/if (version1 null) return -1;if (version2 null) return 1;//记录两个字符串的大小int n1 version1.length();int n2 version2.length();//定义双指针遍历字符串int i 0,j 0;while (i n1 || j n2) {//用long防止溢出long num1 0;//把多余的0减掉while (i n1 version1.charAt(i) ! .) {num1 num1 * 10 (version1.charAt(i) - 0);i;}//跳过字符‘.’i;//用long防止溢出long num2 0;//把多余的0减掉while (j n2 version2.charAt(j) ! .) {num2 num2 * 10 (version2.charAt(j) - 0);j;}//跳过字符‘.’j;//判断谁大if (num1 num2) return 1;if (num1 num2) return -1;}return 0;}
}
二.分割截取
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** 比较版本号* param version1 string字符串 * param version2 string字符串 * return int整型*/public int compare (String version1, String version2) {// write code hereif (version1 null) return -1;if (version2 null) return 1;/*** 以点为分割符*/String[] s1 version1.split(\\.);String[] s2 version2.split(\\.);//遍历字符串数组for (int i 0; i s1.length || i s2.length; i) {//小的版本号后末尾全部补0String str1 i s1.length ? s1[i]:0;String str2 i s2.length ? s2[i]:0;//用long防止溢出long num1 0;for (int j 0; j str1.length(); j) {num1 num1 * 10 (str1.charAt(j) - 0);}long num2 0;for (int j 0; j str2.length(); j) {num2 num2 * 10 (str2.charAt(j) - 0);}if (num1 num2) return 1;if (num1 num2) return -1;}return 0;}
}