165. 比较版本号 
题目描述
版本号由点号分隔的修订号组成。逐段比较两个版本号:忽略前导零,缺失的修订号视为 0。前者大返回 1,小返回 -1,相等返回 0。
题型判断
版本号不能按普通字符串字典序比较,因为 "10" 和 "2" 的字符串顺序与数值顺序不同。应按点分段,再逐段按数值比较。
核心思路
- 用
split(".")得到修订号数组。 - 遍历到两者较长的长度。
- 缺失段用
0补齐,转换为数值后比较。 - 第一个不相等的修订号决定最终结果。
代码实现
复杂度与易错点
- 时间复杂度:
O(m + n),需要读取两个版本字符串。 - 空间复杂度:
O(m + n),split创建分段数组。 "1.0"与"1"相等,不能只比较分段数量。- 前导零不影响修订号数值。
- 题目约束保证修订号可安全转为整数;若修订号可能超过安全整数范围,应去除前导零后比较字符串长度和字典序。

