QUESTION

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
1ST TRY

class Solution {
public:
int compareVersion(string version1, string version2) {
int integer1 = ;
int integer2 = ;
int i1 = ;
int i2 = ; while(i1 < version1.length())
{
integer1 = *integer1 + version1[i1++] - '';
if(version1[i1] == '.')
{
i1++;
break;
}
}
while(i2 < version2.length())
{
integer2 = *integer2 + version2[i2++] - '';
if(version2[i2] == '.')
{
i2++;
break;
}
}
if(integer1 > integer2) return ;
else if(integer1 < integer2) return -; integer1 = ;
integer2 = ;
while(i1 < version1.length())
{
integer1 = *integer1 + version1[i1++] - '';
}
while(i2 < version2.length())
{
integer2 = *integer2 + version2[i2++] - '';
}
if(integer1 > integer2) return ;
else if(integer1 < integer2) return -;
else return ;
}
};

Result: Wrong

Input: "1.1", "1.01.0"
Output: -1
Expected: 0

2ND TRY

考虑有不只一个小数点的情况

class Solution {
public:
int compareVersion(string version1, string version2) {
int integer1 = ;
int integer2 = ;
int i1 = ;
int i2 = ; while(i1 < version1.length() || i2 < version2.length())
{
while(i1 < version1.length())
{
integer1 = *integer1 + version1[i1++] - '';
if(version1[i1] == '.')
{
i1++;
break;
}
}
while(i2 < version2.length())
{
integer2 = *integer2 + version2[i2++] - '';
if(version2[i2] == '.')
{
i2++;
break;
}
}
if(integer1 > integer2) return ;
else if(integer1 < integer2) return -; integer1 = ;
integer2 = ;
}
return ;
}
};

Result: Accepted

Compare Version Numbers(STRING-TYPE CONVERTION)的更多相关文章

  1. 165. Compare Version Numbers (String)

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

  2. 2016.5.21——Compare Version Numbers

    Compare Version Numbers 本题收获: 1.字符串型数字转化为整型数字的方法:s[i] - '0',( 将字母转化为数字是[i]-'A'   ) 2.srt.at(),substr ...

  3. 【leetcode 字符串处理】Compare Version Numbers

    [leetcode 字符串处理]Compare Version Numbers @author:wepon @blog:http://blog.csdn.net/u012162613 1.题目 Com ...

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

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

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

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

  6. 165. Compare Version Numbers - LeetCode

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

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

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

  8. [LeetCode] Compare Version Numbers 版本比较

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

  9. 【leetcode】Compare Version Numbers

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

随机推荐

  1. UNITY 的GC ALLOC到底是什么

    U3D的Profiler中的GC ALLOC 项让人很麻烦,一直搞不清楚它是什么,因为 GC 是垃圾回收,而alloc是内存分配,那么 GC ALLOC 是 垃圾回收内存分配? 这个名字起的太TM烂了 ...

  2. Haskell语言学习笔记(78)fix

    fix 函数 fix 是一个在 Data.Function 模块中定义的函数,它是对于递归的封装,可以用于定义不动点函数. fix :: (a -> a) -> a fix f = let ...

  3. .NET 基础知识

    .net程序基本编写.执行流程(c#)       1>编写c#代码,保存为.cs文件.       2>通过csc.exe程序来将.cs文件编译为.net程序集(.exe或.dll).此 ...

  4. LeetCode OJ 49. Group Anagrams

    题目 Given an array of strings, group anagrams together. For example, given: ["eat", "t ...

  5. kvm配置USB直通

    参照:https://www.linuxidc.com/Linux/2014-12/110919.htm WebVirMgr界面是没有直接的途径了,只能靠修改xml文件,在<device> ...

  6. openwrt多wan限上下行速脚本,基于qosv4,imq模块替换成ifb模块[ZT]

    转自: http://www.right.com.cn/forum/thread-169414-1-1.html ,本人未经测试,转来自已备用 由于树莓派2装openwrt官方没有imq模块, 好像说 ...

  7. 434. Number of Segments in a String

    原题: 434. Number of Segments in a String 解题: 刚看到题目时,觉得可以通过统计空格个数,但想想有可能会有多个空格的情况 思路: 一:遍历字符,if条件碰到非空格 ...

  8. c/c++基础 const

    int main(int argc, char* argv[]) { '; '; a1='; //a2='2'; //a2是字符常量 "; "; a3="; //a4=& ...

  9. Delphi 透明窗体显示文字

    设置窗体属性:BorderStyle 属性设置为 bsNoneColor 属性设置为 clWhite(白色:窗体背景色)TransparentColor 属性设置为 trueTransparentCo ...

  10. Java解决输出数组问题

    package test; public class doubleshuzu { public static void main(String[] args) { double a[][]; Stri ...