如果version1 > version2 返回1,如果 version1 < version2 返回-1,不然返回0.
输入的version字符串非空,只包含数字和字符.。.字符不代表通常意义上的小数点,只是用来区分数字序列。例如字符串2.5并不代表二点五,只是代表版本是第一级版本号是2,第二级版本号是5.
如果version1 > version2 返回1,如果 version1 < version2 返回-1,不然返回0.
输入的version字符串非空,只包含数字和字符.。.字符不代表通常意义上的小数点,只是用来区分数字序列。例如字符串2.5并不代表二点五,只是代表版本是第一级版本号是2,第二级版本号是5.
两个字符串,用空格分割。
每个字符串为一个version字符串,非空,只包含数字和字符.
只能输出1, -1,或0
0.1 1.1
-1
version1和version2的长度不超过1000,由小数点'.'分隔的每个数字不超过256。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input1 = in.next(); String input2 = in.next(); if (input1.equals(input2)) { System.out.println(0); return; } String[] v1 = input1.split("\\."); String[] v2 = input2.split("\\."); int len1 = v1.length; int len2 = v2.length; for (int i = 0; i < Math.min(len1, len2); i++) { if (Integer.parseInt(v1[i]) < Integer.parseInt(v2[i])) { System.out.println(-1); return; } else if (Integer.parseInt(v1[i]) > Integer.parseInt(v2[i])) { System.out.println(1); return; } } //可能一个版本号是另一个版本的子串,也有可能完全相同 if (len1 < len2) { System.out.println(-1); return; } else if (len1 > len2) { System.out.println(1); return; } else { System.out.println(0); return; } } }
/* 不仅要考虑字符串长度相同还要考虑不同的时候 */ import java.io.*; public class Main{ public static void main( String[] args ) throws IOException{ BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) ); String[] inarr = br.readLine().split( " " ); String[] str1 = inarr[0].split("\\."); String[] str2 = inarr[1].split("\\."); //先直接进行比较,看看谁的版本高 for( int i=0; i<str1.length && i<str2.length; i++ ){ if( Integer.parseInt( str1[i] ) < Integer.parseInt( str2[i] ) ){ System.out.println( "-1" ); return; } else if( Integer.parseInt( str1[i] ) > Integer.parseInt( str2[i]) ){ System.out.println( "1" ); return; } } //当前面的比较没有成功,有如下情况 //长度相同时版本一致, //一长一短,并且短的部分与长的前面相同 if( str1.length == str2.length ){ System.out.println( "0" ); } else if( str1.length < str2.length ){ System.out.println( "-1" ); } else{ System.out.println( "1" ); } return; } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String[] v1 = sc.next().split("\\."); String[] v2 = sc.next().split("\\."); int len = Math.max(v1.length, v2.length); int[] num1 = new int[len]; int[] num2 = new int[len]; for (int i = 0; i < v1.length; i++) { num1[i] = Integer.parseInt(v1[i]); } for (int i = 0; i < v2.length; i++) { num2[i] = Integer.parseInt(v2[i]); } int index = 0; while (index < len) { if (num1[index] < num2[index]) { System.out.println(-1); return; } else if (num1[index] > num2[index]) { System.out.println(1); return; } else { index++; } } System.out.println(0); } }