题解 | #比较版本号#
比较版本号
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; } } };