Compare two version numbers version1 and version2.
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
题目的意思就是求两个版本号的大小比较,但给出的版本号是字符串类型的,要转换为数字进行比较
解题思路:1. 把版本号的数字转化为数组存储。 2. 利用数组进行对应大小比较。
难点:获取两个’.’之间的数字,并注意考虑开始和结束情况
在leetcode里的难度类型为easy,但我一开始还是没做出来,在参考了别人的做题思路后才做出来的,很感谢那些大神对这个题目的思路分享。
下面是我用C语言实现的代码,比较累赘:
/**
* 题目的意思是比较两个版本的大小,版本大小全是以字符串的形式存储
* 解题思路:取出版本号的数字,并存储在数组中,并对两个数组进行比较
* 重点在取出版本号的数字,注意第一个数字和最后一个数字
* 字符串转数字的C函数为int num = atoi(char *);
* 设置一个动态数组来存储数字
* *
* */
void getInt(char *version,int size,i