博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode----165. Compare Version Numbers
阅读量:4112 次
发布时间:2019-05-25

本文共 1190 字,大约阅读时间需要 3 分钟。

链接:

大意:

给定两个表示版本的字符串version1和version2,比较两个版本的大小。规定:两个字符串都是非空且不会以'.'开始和结尾,且它们的每个字符都是数字或者'.','.'不代表小数点,而是表示上一个版本号。如果version1 > version2,则返回1;如果version1 < version2,则返回-1;否则返回0.例子:

思路:

  1. 使用字符串的split分割函数对两个字符串按'.'分割,得到两个字符串数组
  2. 依次比较两个数组对应位置字符串形成的long型数字大小。若可以比较出谁大谁小,则可直接返回结果。若相等,则继续比较下一位置。
  3. 若某一字符串数组比较完毕都没有分出谁胜谁负,那么还未比较完的字符串数组中的元素转为long型后依次与0L比较,返回结果

代码:

class Solution {    public int compareVersion(String version1, String version2) {        String[] strs1 = version1.split("\\."), strs2 = version2.split("\\.");        // System.out.println(Arrays.toString(strs1) + ":" + Arrays.toString(strs2));        int i = 0;        while (i < strs1.length && i < strs2.length) {            if (Long.parseLong(strs1[i]) - Long.parseLong(strs2[i]) > 0)                return 1;            else if (Long.parseLong(strs1[i]) - Long.parseLong(strs2[i]) < 0)                return -1;            i++;        }        while (i < strs1.length) {            if (Long.parseLong(strs1[i]) != 0L)                return 1;            i++;        }        while (i < strs2.length) {            if (Long.parseLong(strs2[i]) != 0L)                return -1;            i++;        }        return 0;    }}

结果:

结论:

基础字符串处理题 

 

 

转载地址:http://rxesi.baihongyu.com/

你可能感兴趣的文章
JDBC核心技术 - 上篇
查看>>
JDBC核心技术 - 下篇
查看>>
一篇搞懂Java反射机制
查看>>
一篇彻底搞懂Java注解与枚举类
查看>>
【2021-MOOC-浙江大学-陈越、何钦铭-数据结构】树
查看>>
MySQL主从复制不一致的原因以及解决方法
查看>>
RedisTemplate的key默认序列化器问题
查看>>
序列化与自定义序列化
查看>>
ThreadLocal
查看>>
从Executor接口设计看设计模式之最少知识法则
查看>>
OKhttp之Call接口
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
关于Content-Length
查看>>
WebRequest post读取源码
查看>>
使用TcpClient可避免HttpWebRequest的常见错误
查看>>
EntityFramework 学习之一 —— 模型概述与环境搭建 .
查看>>
C# 发HTTP请求
查看>>
初试visual studio2012的新型数据库LocalDB
查看>>
启动 LocalDB 和连接到 LocalDB
查看>>
Palindrome Number --回文整数
查看>>