首页 > 代码库 > Compare Version Numbers(STRING-TYPE CONVERTION)
Compare Version Numbers(STRING-TYPE CONVERTION)
QUESTION
Compare two version numbers version1 and version1.
If version1 > version2 return 1, if version1 < version2 return -1, otherwise return 0.
You may assume that the version strings are non-empty and contain only digits and the . character.
The . character does not represent a decimal point and is used to separate number sequences.
For instance, 2.5 is not "two and a half" or "half way to version three", it is the fifth second-level revision of the second first-level revision.
Here is an example of version numbers ordering:
0.1 < 1.1 < 1.2 < 13.37
1ST TRY
class Solution {public: int compareVersion(string version1, string version2) { int integer1 = 0; int integer2 = 0; int i1 = 0; int i2 = 0; while(i1 < version1.length()) { integer1 = 10*integer1 + version1[i1++] - ‘0‘; if(version1[i1] == ‘.‘) { i1++; break; } } while(i2 < version2.length()) { integer2 = 10*integer2 + version2[i2++] - ‘0‘; if(version2[i2] == ‘.‘) { i2++; break; } } if(integer1 > integer2) return 1; else if(integer1 < integer2) return -1; integer1 = 0; integer2 = 0; while(i1 < version1.length()) { integer1 = 10*integer1 + version1[i1++] - ‘0‘; } while(i2 < version2.length()) { integer2 = 10*integer2 + version2[i2++] - ‘0‘; } if(integer1 > integer2) return 1; else if(integer1 < integer2) return -1; else return 0; }};
Result: Wrong
Input: "1.1", "1.01.0"
Output: -1
Expected: 0
2ND TRY
考虑有不只一个小数点的情况
class Solution {public: int compareVersion(string version1, string version2) { int integer1 = 0; int integer2 = 0; int i1 = 0; int i2 = 0; while(i1 < version1.length() || i2 < version2.length()) { while(i1 < version1.length()) { integer1 = 10*integer1 + version1[i1++] - ‘0‘; if(version1[i1] == ‘.‘) { i1++; break; } } while(i2 < version2.length()) { integer2 = 10*integer2 + version2[i2++] - ‘0‘; if(version2[i2] == ‘.‘) { i2++; break; } } if(integer1 > integer2) return 1; else if(integer1 < integer2) return -1; integer1 = 0; integer2 = 0; } return 0; }};
Result: Accepted
Compare Version Numbers(STRING-TYPE CONVERTION)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。