leetcode-165. 比较版本号
题目:
代码:
将版本号中的每一部分转换为整型,然后进行比较
#include <iostream>
#include <vector>
using namespace std;
vector<int> version_str(string version){
vector<int> res;
int tn=0;
for(int i=0;i<version.size();i++){
if(version[i]=='.'){
res.push_back(tn);
tn=0;
}else{
tn=tn*10+version[i]-'0';
}
}
res.push_back(tn);
return res;
}
int compareVersion(string version1, string version2) {
vector<int> res1;
vector<int> res2;
res1=version_str(version1);
res2=version_str(version2);
int n1=res1.size();
int n2=res2.size();
int n;
n=n1>=n2?n2:n1;
int flag=2;
for(int i=0;i<n;i++){
if(res1[i]==res2[i]){
flag=0;
}else if(res1[i]>res2[i]){
flag=1;
break;
}else{
flag=-1;
break;
}
}
if(flag==0){
if(n1>n2){
for(int i=n2;i<n1;i++){
if(res1[i]!=0){
flag=1;
}
}
}else if(n1<n2){
for(int i=n1;i<n2;i++){
if(res2[i]!=0){
flag=-1;
}
}
}
}
return flag;
}
int main(){
string version1,version2;
cin>>version1>>version2;
int flag;
flag=compareVersion(version1, version2);
cout<<flag;
return 0;
}