solution.md 4.4 KB
Newer Older
ToTensor's avatar
ToTensor 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
# 比较版本号

<p>给你两个版本号 <code>version1</code><code>version2</code> ,请你比较它们。</p>

<p>版本号由一个或多个修订号组成,各修订号由一个 <code>'.'</code> 连接。每个修订号由 <strong>多位数字</strong> 组成,可能包含 <strong>前导零</strong> 。每个版本号至少包含一个字符。修订号从左到右编号,下标从 0 开始,最左边的修订号下标为 0 ,下一个修订号下标为 1 ,以此类推。例如,<code>2.5.33</code><code>0.1</code> 都是有效的版本号。</p>

<p>比较版本号时,请按从左到右的顺序依次比较它们的修订号。比较修订号时,只需比较 <strong>忽略任何前导零后的整数值</strong> 。也就是说,修订号 <code>1</code> 和修订号 <code>001</code> <strong>相等 </strong>。如果版本号没有指定某个下标处的修订号,则该修订号视为 <code>0</code> 。例如,版本 <code>1.0</code> 小于版本 <code>1.1</code> ,因为它们下标为 <code>0</code> 的修订号相同,而下标为 <code>1</code> 的修订号分别为 <code>0</code><code>1</code><code>0 < 1</code></p>

<p>返回规则如下:</p>

<ul>
	<li>如果 <code><em>version1 </em><em>version2</em></code> 返回 <code>1</code></li>
	<li>如果 <code><em>version1 </em>< <em>version2</em></code> 返回 <code>-1</code></li>
	<li>除此之外返回 <code>0</code></li>
</ul>

<p> </p>

<p><strong>示例 1:</strong></p>

<pre>
<strong>输入:</strong>version1 = "1.01", version2 = "1.001"
<strong>输出:</strong>0
<strong>解释:</strong>忽略前导零,"01" 和 "001" 都表示相同的整数 "1"
</pre>

<p><strong>示例 2:</strong></p>

<pre>
<strong>输入:</strong>version1 = "1.0", version2 = "1.0.0"
<strong>输出:</strong>0
<strong>解释:</strong>version1 没有指定下标为 2 的修订号,即视为 "0"
</pre>

<p><strong>示例 3:</strong></p>

<pre>
<strong>输入:</strong>version1 = "0.1", version2 = "1.1"
<strong>输出:</strong>-1
<strong>解释:</strong>version1 中下标为 0 的修订号是 "0",version2 中下标为 0 的修订号是 "1" 。0 < 1,所以 version1 < version2
</pre>

<p><strong>示例 4:</strong></p>

<pre>
<strong>输入:</strong>version1 = "1.0.1", version2 = "1"
<strong>输出:</strong>1
</pre>

<p><strong>示例 5:</strong></p>

<pre>
<strong>输入:</strong>version1 = "7.5.2.4", version2 = "7.5.3"
<strong>输出:</strong>-1
</pre>

<p> </p>

<p><strong>提示:</strong></p>

<ul>
	<li><code>1 <= version1.length, version2.length <= 500</code></li>
	<li><code>version1</code><code>version2</code> 仅包含数字和 <code>'.'</code></li>
	<li><code>version1</code><code>version2</code> 都是 <strong>有效版本号</strong></li>
	<li><code>version1</code><code>version2</code> 的所有修订号都可以存储在 <strong>32 位整数</strong></li>
</ul>


## template

```python
ToTensor's avatar
ToTensor 已提交
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
class Solution(object):
    def compareVersion(self, version1, version2):
        """
        用split划分 转换为int 比较即可
        :type version1: str
        :type version2: str
        :rtype: int
        """
        com1 = version1.split(".")
        com2 = version2.split(".")

        if len(com1) != len(com2):

            if len(com1) > len(com2):
                for i in range(len(com2)):
                    if int(com1[i]) > int(com2[i]):
                        return 1
                    elif int(com1[i]) < int(com2[i]):
                        return -1
                for i in range(len(com2), len(com1)):
                    if int(com1[i]) != 0:
                        return 1
                return 0
            else:
                for i in range(len(com1)):
                    if int(com1[i]) > int(com2[i]):
                        return 1
                    elif int(com1[i]) < int(com2[i]):
                        return -1
                for i in range(len(com1), len(com2)):
                    if int(com2[i]) != 0:
                        return -1
                return 0

        for i in range(len(com1)):
            if int(com1[i]) > int(com2[i]):
                return 1
            elif int(com1[i]) < int(com2[i]):
                return -1
            else:
                continue
        return 0
ToTensor's avatar
ToTensor 已提交
114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
```

## 答案

```python

```

## 选项

### A

```python

```

### B

```python

```

### C

```python

```