📟作者主页:慢热的陕西人
🌴专栏链接:力扣刷题日记
📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言
文章目录
- 牛客热题:比较版本号
- 题目链接
- 方法一:暴力遍历
- 思路
- 代码
- 复杂度
牛客热题:比较版本号
题目链接
比较版本号_牛客题霸_牛客网 (nowcoder.com)
方法一:暴力遍历
思路
- 将用
.
分割的版本号,进行逐个比较 - 短和更长的比较,默认其之后的版本号为0
代码
int compare(string version1, string version2)
{
int v1 = 0;
int v2 = 0;
while(v1 < version1.size() || v2 < version2.size())
{
int a = 0, b = 0;
if(v1 < version1.size())
{
int pos1 = version1.find('.', v1);
if(pos1 == string::npos) pos1 = version1.size();
a = atoi(version1.substr(v1, pos1 + 1 - v1 + 1).c_str());
v1 = pos1 + 1;
}
if(v2 < version2.size())
{
int pos2 = version2.find('.', v2);
if(pos2 == string::npos) pos2 = version2.size();
b = atoi(version2.substr(v2, pos2 + 1 - v2 + 1).c_str());
v2 = pos2 + 1;
}
if(a == b) continue;
else if(a < b) return -1;
else return 1;
}
return 0;
}
复杂度
时间复杂度:O(N) ,只遍历了一次对应字符串
空间复杂度:O(1),使用了常数个变量