package temworkingarea;
import leetcode.tag.JavaEye;
@JavaEye
/**
* <pre>
* Compare two version numbers version1 and version1.
* 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
* </pre>
*/
public class CompareVersionNumbers {
public class Solution {
public int compareVersion(String version1, String version2) {
long[] v_a = convert(version1);
long[] v_b = convert(version2);
v_a = convert(v_a, Math.max(v_a.length, v_b.length));
v_b = convert(v_b, Math.max(v_a.length, v_b.length));
for (int i = 0; i < Math.min(v_a.length, v_b.length); i++) {
if (v_a[i] < v_b[i])
return -1;
if (v_a[i] > v_b[i])
return 1;
}
return 0;
}
private long[] convert(String str) {
String parts[] = str.split("\\.");
long[] r = new long[parts.length];
for (int i = 0; i < r.length; i++) {
r[i] = Long.parseLong(parts[i]);
}
return r;
}
private long[] convert(long[] a, int length) {
long[] r = new long[length];
System.arraycopy(a, 0, r, 0, a.length);
return r;
}
}
}
分享到:
相关推荐
java java_leetcode题解之Numbers With Repeated Digits.java
java java_leetcode题解之Numbers With Same Consecutive Differences.java
java java_leetcode题解之Numbers At Most N Given Digit Set.java
自己写的一个完整的程序,包括main函数,在VS上面提交通过,但是放到leetcode上面会出现问题;只是作为一个参考,一起学习学习0.o!解决的问题有:第一:两个链表的最后一个值相加后进位的问题;第二:两个链表的...
python python_leetcode题解之165_Compare_Version_Numbers.py
You are given two non-empty linked lists representing two non-negative integers....You may assume the two numbers do not contain any leading zero, except the number 0 itself. java AC版本
javascript js_leetcode题解之165-compare-version-numbers.js
leetcode卡比较版本号 比较两个版本号 version1 和 version2。 如果 version1 > version2 返回 1; 如果 version1 < version2 返回 -1;否则返回 0。 您可以假设版本字符串是非空的并且只包含数字和 . 特点。 这 ...
《LeetCode 101 - A LeetCode Grinding Guide (C++ Version)》是一本专为C++程序员设计的深入解析LeetCode算法问题的指南。这本书采用彩色版,以直观的方式讲解了各种数据结构和算法,旨在帮助读者磨练编程技能,...
本书名为《LeetCode 101 - A LeetCode Grinding Guide (C++ Version)》,是由作者高畅(Chang Gao)撰写的一本面向具有C++编程基础但缺乏刷题经验读者的教科书和工具书。本书的初衷是为了帮助读者系统性地归纳和总结...
《LeetCodeJava:LeetCode Java版本的深度剖析与实践指南》 在编程世界里,LeetCode是一个备受程序员喜爱的在线平台,它提供了大量的算法题目,旨在帮助开发者提升编程技巧、算法理解和问题解决能力。LeetCodeJava...
java java_leetcode题解之Consecutive Numbers Sum.java
《LeetCode 101 - A LeetCode Grinding Guide (C++ Version)》是一本面向有一定C++编程基础,但缺乏刷题经验读者的教科书和工具书。作者高畅(Chang Gao)基于其在准备实习和秋招过程中对LeetCode题目的整理和刷题...
《A LeetCode Grinding Guide (C++ Version)》是一份针对准备算法面试和提升编程技能的珍贵资源,尤其适合那些希望在C++语言环境下磨炼算法功底的IT专业人士。这份笔记详细介绍了如何通过LeetCode这个在线平台进行...
java java_leetcode题解之Compare Strings by Frequency
java java_leetcode题解之Equal Rational Numbers.java
vs code LeetCode 插件
《使用leetcode-editor在IDE中进行LeetCode练习的全方位指南》 LeetCode是一个广受欢迎的在线编程练习平台,它提供了一系列的算法题目供程序员们提升技能。对于习惯在集成开发环境(IDE)中工作的开发者来说,将...
《Python版LeetCode题解全集详解》 LeetCode是一个广受欢迎的在线编程挑战平台,致力于帮助程序员提升技能,特别是面试准备。这个压缩包“lc-all-solutions-master”包含了使用Python语言解决LeetCode所有问题的...