题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 比较版本号
* @param version1 string字符串
* @param version2 string字符串
* @return int整型
*/
int compare(string version1, string version2) {
// write code here
vector<int> first,second;
version1.push_back('.');
version2.push_back('.');
int val=0;
for(int i=0; i<version1.size(); ++i)
{
if( '.'==version1[i] )
{
first.push_back( val );
val=0;
}
else
{
val=val*10+(version1[i]-'0');
}
}
val=0;
for(int i=0; i<version2.size(); ++i)
{
if( '.'==version2[i] )
{
second.push_back( val );
val=0;
}
else
{
val=val*10+(version2[i]-'0');
}
}
bool testzero=true;
for(int i=0; i<min( first.size(), second.size() ) ; ++i)
{
if( first[i]>second[i] ) return 1;
else if( first[i]<second[i] ) return -1;
else continue;
}
//testzero=true;
if( first.size()==second.size() )
{
return 0;
}
else if( first.size()>second.size() )
{
//sp 0结尾
for(int i=second.size(); i<first.size(); ++i )
{
if( first[i]>0 )
{
return 1;
}
}
return 0;
}
else
{
//sp 0结尾
for(int i=first.size(); i<second.size(); ++i )
{
if( second[i]>0 )
{
return -1;
}
}
return 0;
}
}
};
查看7道真题和解析