解題思路:
1、通過將版本號字串轉化為陣列,通過比較兩個陣列的大小來判定版本號大小,注意邊界的處理,即最後乙個版本號的處理,要根據』\0』來判定,所以字串的長度要+1;
2、注意陣列末尾補零處理,同事按照最長的長度來比較,簡化兩個陣列長度不同的處理。
3、注意使用atoi函式,簡化「01」和「001」的字串的數值的差異處理。
int
compareversion
(char
* version1,
char
* version2)
;int ver2[
1000]=
;int count1 =0;
int count2 =0;
int version1_len = strlen (version1)
;int version2_len = strlen (version2)
;char temp[
100]=;
int start =0;
//字串初始化,轉化為int陣列
for(
int i =
0; i < version1_len+
1; i++
)else
}for
(int i =
0; i < version2_len+
1; i++
)else
}//比較數字大小輸出結果
int res =0;
int count = count1 > count2 ? count1 : count2;
int i;
for(i =
0; i < count; i++
)else
if(ver1[i]
< ver2[i]
)else
}return res;
}
Leetcode 165 比較版本號 C
比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 也不是...
leetcode165 比較版本號
比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 也不是...
LeetCode 165 比較版本號
比較兩個版本號 version1 和 version2。如果 version1 version2 返回 1,如果 version1 version2 返回 1,除此之外返回 0。你可以假設版本字串非空,並且只包含數字和 字元。字元不代表小數點,而是用於分隔數字序列。例如,2.5 不是 兩個半 也不是...