首页 > 其他 > 详细

leetcode——165 Compare Version Numbers(数字版本的比较)

时间:2015-06-23 10:13:06      阅读:178      评论:0      收藏:0      [点我收藏+]
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

Hide Tags: String

解题思路:
(1)使用splt(“\\.”)对应小数点进行分离,然后逐个比较

(2)比较过程中,我们假定数组的长度一致。长度较短的数组,当比较到最后一个元素以后,往后自动加0操作


代码如下:

	public static int Version(String version1, String version2)
	{
		//使用分隔符,然后进行比较
		String[] str1=version1.split("\\.");
		String[] str2=version2.split("\\.");
		//获取需要比例的长度为两版本中长度的大者
		int length=Math.max(str1.length, str2.length);
		for (int i = 0; i < length; i++)
		{
			/*
			 * 下面两行代码的意思将两版本的长度设置成一样
			 * 如version1=1.1 version2=1.1.2
			 * 执行完 int num1=i<str1.length?Integer.parseInt(str1[i]):0 后
			 * version1=1.1.0,这样方便比较
			 */
			int num1=i<str1.length?Integer.parseInt(str1[i]):0;
			int num2=i<str2.length?Integer.parseInt(str2[i]):0;
			
			if (num1>num2)
			{
				return 1;
			}
			else if (num1<num2)
			{
				return -1;
			}
		}
		return 0;	
	}

leetcode——165 Compare Version Numbers(数字版本的比较)

原文:http://blog.csdn.net/zzc8265020/article/details/46602357

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!