找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 10143|回复: 11
收起左侧

[米群网刷题小分队] 【LeetCode刷题小分队】Compare Version Numbers 新题精简解法(Java)

[复制链接]

84

主题

32

精华

1278

积分

顶级会员

Rank: 6Rank: 6

积分
1278

活跃会员热心会员最佳新人精华帖之王

发表于 12-17-2014 07:06 AM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

解法:O(N)
顺着遍历一遍。每次记录每个字符串中的当前层的大小,进行对比。直接判断返回。总有不一样,否则就是完全相同,在最后返回相等。

  1. public class Solution {
  2.     public int compareVersion(String version1, String version2) {
  3.         long a = 0, b =0;
  4.         int v1len = version1.length(), v2len = version2.length();
  5.         int i = 0, j = 0;
  6.         while (i < v1len || j < v2len) {
  7.                 a = 0; b =0;
  8.                 while (i < v1len && version1.charAt(i) != '.') {
  9.                         a = a * 10 + version1.charAt(i) - '0';
  10.                         ++i;
  11.                 }
  12.                 ++i;
  13.                 while (j < v2len && version2.charAt(j) != '.') {
  14.                         b = b * 10 + version2.charAt(j) - '0';
  15.                         ++j;
  16.                 }
  17.                 ++j;
  18.                 if (a > b) return 1;
  19.                 if (a < b) return -1;
  20.         }
  21.             return 0;
  22.     }
  23. }

复制代码

4

主题

0

精华

86

积分

资深会员

Rank: 2

积分
86
发表于 12-19-2014 01:59 AM | 显示全部楼层
学习了,谢谢~~
回复 支持 反对

使用道具 举报

84

主题

32

精华

1278

积分

顶级会员

Rank: 6Rank: 6

积分
1278

活跃会员热心会员最佳新人精华帖之王

 楼主| 发表于 12-19-2014 09:59 AM | 显示全部楼层
emma 发表于 12-19-2014 01:59 AM
学习了,谢谢~~

不客气。。。加油。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表