NC104:比较版本号
比较版本号
http://www.nowcoder.com/questionTerminal/2b317e02f14247a49ffdbdba315459e7
示例 1: 输入: version1 = “0.1”, version2 = “1.1” 输出: -1 示例 2: 输入: version1 = “1.0.1”, version2 = “1” 输出: 1 示例 3: 输入: version1 = “7.5.2.4”, version2 = “7.5.3” 输出: -1 示例 4: 输入:version1 = “1.01”, version2 = “1.001” 输出:0 解释:忽略前导零,“01” 和 “001” 表示相同的数字 “1”。 示例 5: 输入:version1 = “1.0”, version2 = “1.0.0” 输出:0 解释:version1 没有第三级修订号,这意味着它的第三级修订号默认为 “0”。 提示: 版本字符串由以点 (.) 分隔的数字字符串组成。这个数字字符串可能有前导零。 版本字符串不以点开始或结束,并且其中不会有两个连续的点。
代码:
public class Solution { /** * 比较版本号 * @param version1 string字符串 * @param version2 string字符串 * @return int整型 */ public int compare (String version1, String version2) { // write code here String[] str1=version1.split("\\."); String[] str2=version2.split("\\."); int n=Math.max(str1.length,str2.length); for(int i=0;i<n;i++){ int x= i<str1.length ? Integer.valueOf(str1[i]) : 0 ; int y= i<str2.length ? Integer.valueOf(str2[i]) : 0 ; if(x<y){ return -1; } else if(x>y){ return 1; } } return 0; } }
名企高频面试算法题解 文章被收录于专栏
牛客题霸 - 程序员面试高频题 - 题解