题解 | #比较版本号#

比较版本号

http://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 比较版本号
     * @param version1 string字符串 
     * @param version2 string字符串 
     * @return int整型
     */
    public int compare (String version1, String version2) {
        // write code here
        // 从start到end是就是 .分割的各段,使用numi记录version1此段的值
        int i_start = 0, j_start = 0;
        int i_end = 0, j_end = 0;
        int numi = 0, numj = 0;
        // eg:1.1 vs 1.1.1   等价于比较  1.1.0 vs 1.1.1
        while(i_end < version1.length() || j_end < version2.length()){
            if(i_end >= version1.length()){
                numi = 0;
            }else{
                // 以.为分割位
                while(i_end < version1.length() && version1.charAt(i_end) != '.'){
                    i_end++;
                }
                numi = Integer.parseInt(version1.substring(i_start,i_end));
                // 开始记录下一段的 起始索引 和 结束索引+1
                i_start = ++i_end;
            }

            if(j_end >= version2.length()){
                numj = 0;
            }else{
                while(j_end < version2.length() && version2.charAt(j_end) != '.'){
                    j_end++;
                }
                numj = Integer.parseInt(version2.substring(j_start,j_end));
                j_start = ++j_end;
            }

            // 比较当前段的大小
            if(numi > numj){
                return 1;
            }else if(numi < numj){
                return -1;
            }


        }

        return 0;
    }




}
全部评论

相关推荐

11-18 09:44
Java
小白也想要offer:简历别放洋屁,搞不还还放错了,当然你投外企除外,以上纯属个人观点
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务