165. Compare Version Numbers
这是道水题。给你两个版本号的字符串(只包含点号和数字),要你比较大小,比如:
0.1 < 1.1 < 1.2 < 13.37
需要注意的是,1.7 < 1.15
的,点号分隔出来的第二部分只是小版本号,也要按数字的方法比较大小,而不是用字符串字典序。
这道题一开始觉得很简单,看了题目中的示例数据后,以为版本号字符串都是两部分组成的,直接 Python str.split
开搞,结果发现有三部分的版本号 1.0.2
,也有一部分的版本号 1
。还有以 0 开头的版本号:1.02
。还有奇怪的 1.0
。
处理好这些 case 后很容易就过了。写了 Python 跟 C++ 两个版本。C++ 的版本用了 stringstream
用来解析数字和点号。
看题很重要,思考测试数据的可能性很重要。虽然是水题也错了这么多次。