题意:比较版本号的大小

有点变态,容易犯错

本质是字符串的比较,请注意他的版本号的小数点不知1个,有的会出现01.0.01这样的变态版本号

class Solution {
public:
int cmp_num(string a, string b){
if(a.size() < b.size()) return -;
else if(a.size() == b.size()){
if(a == b) return ;
else return a < b ? -: ;
}
else return ;
}
vector<string> change(string v){
vector<string> vs;
int a = , b = ;
while((b = v.find(".",a)) != string::npos){
string::size_type i = a;
for(; i < v.size(); ++i){
if(v[i] > '' || v[i] == '.') break;
}
if(i == v.size() || v[i] == '.') vs.push_back("");
else vs.push_back(v.substr(i, b- i));
a = b + ;
}
string::size_type i = a;
for(; i < v.size(); ++i){
if(v[i] > '' || v[i] == '.') break;
}
if(i == v.size() || v[i] == '.') vs.push_back("");
else vs.push_back(v.substr(i, v.size() - i));
return vs;
}
int compareVersion(string version1, string version2) {
vector<string> v1,v2;
v1 = change(version1);
v2 = change(version2); string::size_type i;
for(i = ; i < v1.size() && i <v2.size(); ++i){
if(cmp_num(v1[i],v2[i]) != ) return cmp_num(v1[i],v2[i]);
} for(; i < v1.size(); ++i){
if(cmp_num(v1[i],"") != ) return cmp_num(v1[i],"");
} for(; i < v2.size(); ++i){
if(cmp_num("",v2[i]) != ) return cmp_num("",v2[i]);
} return ;
}
};

Leetcode 165 Compare Version Numbers的更多相关文章

  1. [LeetCode] 165. Compare Version Numbers 比较版本数

    Compare two version numbers version1 and version1.If version1 > version2 return 1, if version1 &l ...

  2. ✡ leetcode 165. Compare Version Numbers 比较两个字符串数字的大小 --------- java

    Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...

  3. Java for LeetCode 165 Compare Version Numbers

    Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...

  4. Java [Leetcode 165]Compare Version Numbers

    题目描述: Compare two version numbers version1 and version2.If version1 > version2 return 1, if versi ...

  5. 【LeetCode】165. Compare Version Numbers 解题报告(Python)

    [LeetCode]165. Compare Version Numbers 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博 ...

  6. 165. Compare Version Numbers - LeetCode

    Question 165. Compare Version Numbers Solution 题目大意: 比较版本号大小 思路: 根据逗号将版本号字符串转成数组,再比较每个数的大小 Java实现: p ...

  7. 【刷题-LeetCode】165 Compare Version Numbers

    Compare Version Numbers Compare two version numbers version1 and version2. If *version1* > *versi ...

  8. 【一天一道LeetCode】#165. Compare Version Numbers

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 来源: htt ...

  9. 【LeetCode】165 - Compare Version Numbers

    Compare two version numbers version1 and version2.If version1 > version2 return 1, if version1 &l ...

随机推荐

  1. IT_sort用法实例

    form fill_it_sort.     iw_sort-spos = '1'.      iw_sort-fieldname = 'AUFNR'.      iw_sort-up = 'X'. ...

  2. CSS3动画与2D、3D转换

    一.过度动画:transition 五个属性: transition-property css 样式属性名称 transition-duration 动画持续时间(需要单位s) transition- ...

  3. 转 SVN 在vs中的使用

    给大家介绍一些SVN的入门知识!希望对大家的学习起到作用!      关于SVN与CVS的相关知识,大家可以自己去google一下.      一.准备         SVN是一个开源的版本控制系统 ...

  4. Oracle常量

    Oracle是有常量的,而SqlServer是没有常量的 queryFrom constant ) := ' hello ';

  5. C#键盘钩子 鼠标钩子

    最新对C#模拟键盘按键,鼠标操作产生了兴趣.特从网上收集了一些常用的API用来调用键盘,鼠标操作. class Win32API { #region DLL导入 /// <summary> ...

  6. CentOS 7下源码安装MySQL 5.7

    网上说linux安装mysql服务分两种安装方法: ①源码安装,优点是安装包比较小,只有几十M左右,缺点是安装依赖的库多,安装编译时间长,安装步骤复杂容易出错: ②使用官方编译好的二进制文件安装,优点 ...

  7. js抽奖

    http://www.aichengxu.com/view/64369 <!Doctype html><html><head><meta http-equiv ...

  8. iOS 微信支付

    相关资料 SDK下载:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1 APP端开发步骤说明:https://pay.weixin ...

  9. easyui combobox onSelect事件

    easyui combobox 没有onchange事件,只有onSelect事件 1 $(function () { $('#Select6').combobox({ onSelect: funct ...

  10. Java学习笔记 第一章 入门<转>

    第一章 JAVA入门 一.基础常识 1.软件开发 什么是软件? 软件:一系列按照特定顺序组织的计算机数据和指令的集合 系统软件:DOS,Windows,Linux 应用软件:扫雷.QQ.迅雷 什么是开 ...