题解 | #比较版本号#
比较版本号
https://www.nowcoder.com/practice/2b317e02f14247a49ffdbdba315459e7
class Solution { public: int compare(string version1, string version2) { int n = version1.size(); int m = version2.size(); int i = 0; int j = 0; while (i < n || j < m) { long num1 = 0; while (i < n && version1[i] != '.') { num1 = num1 * 10 + version1[i] - '0'; i++; } i++; long num2 = 0; while (j < m && version2[j] != '.') { num2 = num2 * 10 + version2[j] - '0'; j++; } j++; if (num1>num2) { return 1; } if (num1<num2) { return -1; } } return 0; } };
比较版本号:
两个版本号为两组字符串,字符串可以按照索引访问具体字符。
思路:按照'.'字符将数字拆分,并将'.'字符前边的数字转换成十进制数记录起来。
ps:字符串转int类型数字可以使用'某字符' - '0'得到对应int数。
从高到低位,依次比较