AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

K0008. 魔法版本的能量提升计算

简单通过率 75% · 提交 118 · 通过 88
字符串模拟排序

在魔法学院中,小慕正在整理法术版本库,每个法术版本由一个 表示,每个字符串由点号分隔的若干整数段组成,例如:`主版本.次版本.补丁版本`。新版本的能量通常高于旧版本,为提升法术效果,小慕需要统计现有版本中哪些需要升级到指定的目标版本或更高版本。 版本比较规则: 1. 版本号按主版本、次版本、补丁版本的顺序。 2. 如果指定版本的某个段高于现有版本的对应段,则该现有版本需要升级。 3. 如果现有版本的某个段不存在, 参与比较。

提示:带虚线的词点一下有通俗解释。

输入描述

- 第一行包含一个整数 `n`,表示现有版本的数量,满足 $1 \leq n \leq 10^4$。 - 接下来 `n` 行,每行一个字符串,表示现有的魔法版本 `currentVersions`。 - 最后一行输入一个字符串 `targetVersion`,表示目标版本。 版本字符串的格式: - 每段由非负整数组成,数值范围为 $0 \leq \text{整数值} \leq 10^9$。

输出描述

输出一个整数,表示需要升级到目标版本的现有版本的数量。

示例

示例 1

输入

4
100.200
100.200.1
100.50
100.200.3
100.200.2

输出

3

说明:需要升级的版本如下: - `"100.200"`:目标版本 `100.200.2` 的补丁版本高于现有版本。 - `"100.200.1"`:目标版本 `100.200.2` 的补丁版本高于现有版本。 - `"100.50"`:目标版本 `100.200.2` 的次版本高于现有版本。 版本 `"100.200.3"` 已经高于目标版本,不需要升级。

示例 2

输入

4
1.0.0
1.2
0.9.9
1.0.1
1.1

输出

3

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
版本比较示例:目标版本 100.200.2 现有: 100.200 (补丁=0) 目标: 100.200.2 需要升级 ✓ 现有: 100.200.1 目标: 100.200.2 需要升级 ✓ 现有: 100.50 (次版本50<200) 目标: 100.200.2 需要升级 ✓ 现有: 100.200.3 目标: 100.200.2 不需要升级 ✗
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「魔法版本的能量提升计算」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。