成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

[Leetcode] Compare Version Numbers 比較版本號(hào)

FrozenMap / 3718人閱讀

摘要:注意因?yàn)榉椒ㄝ斎氲氖且粋€(gè)正則表達(dá)式所以不能直接用,而是要用,而的要轉(zhuǎn)義,所有要用代碼按照進(jìn)行分割比對(duì)相應(yīng)的子串如果某個(gè)版本號(hào)更長(zhǎng),判斷其多余部分是否是,如果不是,則較長(zhǎng)的較大,否則是一樣的。

Compare Version Numbers

Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.

You may assume that the version strings are non-empty and contain only digits and the . character. The . character does not represent a decimal point and is used to separate number sequences. For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.

Here is an example of version numbers ordering:

0.1 < 1.1 < 1.2 < 13.37
迭代法 復(fù)雜度

時(shí)間 O(N) 空間 O(N)

思路

這題的難點(diǎn)在于幾個(gè)corner case:

1.01是一個(gè)版本,意味即使長(zhǎng)度不一樣,也要檢查后面是否都是0

1.15要大于1.5,因?yàn)榍罢呤堑?5個(gè)子版本,而后者是第5個(gè)

最簡(jiǎn)單的方法就是用split方法按照.分割,然后比對(duì)相應(yīng)的每一個(gè)子串。

注意

因?yàn)閟plit方法輸入的是一個(gè)正則表達(dá)式所以不能直接用.,而是要用.,而java的要轉(zhuǎn)義,所有要用.

代碼
public class Solution {
    public int compareVersion(String version1, String version2) {
        // 按照.進(jìn)行分割
        String[] v1 = version1.split(".");
        String[] v2 = version2.split(".");
        int i = 0;
        // 比對(duì)相應(yīng)的子串
        for(; i < v1.length && i < v2.length; i++){
            int val1 = Integer.parseInt(v1[i]);
            int val2 = Integer.parseInt(v2[i]);
            if(val1 < val2) return -1;
            if(val1 > val2) return 1;
        }
        // 如果某個(gè)版本號(hào)更長(zhǎng),判斷其多余部分是否是0,如果不是0,則較長(zhǎng)的較大,否則是一樣的。
        if(v2.length > v1.length){
            for(; i < v2.length; i++){
                int val = Integer.parseInt(v2[i]);
                if(val != 0) return -1;
            }
        } else if(v1.length > v2.length){
            for(; i < v1.length; i++){
                int val = Integer.parseInt(v1[i]);
                if(val != 0) return 1;
            }
        }
        return 0;
    }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/64593.html

相關(guān)文章

  • leetcode165. Compare Version Numbers

    摘要:題目要求也就是說(shuō),比較版本號(hào)。思路一利用通過(guò)方法將版本通過(guò)分隔開(kāi),然后將每一段版本從轉(zhuǎn)化為進(jìn)行比較思路二自己實(shí)現(xiàn)轉(zhuǎn)化為自己實(shí)現(xiàn)將轉(zhuǎn)化為,可以通過(guò)循環(huán)的方式。這是一個(gè)基本的算法。 題目要求 Compare two version numbers version1 and version2. If version1 > version2 return 1, if version1 < ve...

    Mike617 評(píng)論0 收藏0
  • [LeetCode] Compare Version Numbers

    摘要:首先找整數(shù)部分的坐標(biāo)段,和都指向初值,令和一直向后遍歷到小數(shù)點(diǎn)為止。然后用將的整數(shù)段轉(zhuǎn)化為數(shù)值,進(jìn)行比較若結(jié)果為大于或小于關(guān)系,直接返回結(jié)果若結(jié)果為相等,進(jìn)行小數(shù)部分的比較。 Problem Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 < v...

    jzman 評(píng)論0 收藏0
  • [LeetCode] Compare Version Numbers

    Problem Compare two version numbers version1 and version2.If version1 > version2 return 1; if version1 < version2 return -1;otherwise return 0. You may assume that the version strings are non-empty an...

    Alex 評(píng)論0 收藏0
  • [LeetCode] 165. Compare Version Numbers

    Problem Compare two version numbers version1 and version2.If version1 > version2 return 1; if version1 < version2 return -1;otherwise return 0. You may assume that the version strings are non-empty an...

    趙春朋 評(píng)論0 收藏0
  • Compare Version Numbers LC解題記錄

    摘要:題目?jī)?nèi)容比較不同的版本號(hào),并根據(jù)大小返回,或。并提醒版本意思是第二代的第五次升級(jí),反正不是數(shù)字上的的意思。代碼拆分兩個(gè)字符串這里用最大的長(zhǎng)度作為循環(huán)范圍因?yàn)檠h(huán)范圍是最大長(zhǎng)度,所以缺的位置補(bǔ)復(fù)雜度分析,和分別是兩個(gè)字符串的長(zhǎng)度。 題目?jī)?nèi)容 比較不同的版本號(hào),并根據(jù)大小返回-1,1或0。并提醒2.5版本意思是第二代的第五次升級(jí),反正不是數(shù)字上的2.5的意思。 解決思路 直觀的想法是,找到...

    wanglu1209 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<