通过率 100% · 提交 5 · 通过 5
在艾尔兰大陆,魔导工坊为每一本魔法卷轴记录一个三段式魔导版本号,格式为`a.b.c`。 其中: * `a`表示主阶位; * `b`表示副阶位; * `c`表示修订阶位; * `b`和`c`可以省略,因此版本号也可以写成`a.b`或`a`; * 每一段都是范围在`[0,999]`之间的整数; * 版本号中不会出现前导零。 为了判断两道魔法结界是否能被同一个卷轴版本同时激活,工坊使用「」来描述允许的版本。 一个版本结界范围由一个和一个版本号组成。 前缀可能为`=`,`>`,`>=`,``,`>=`,`v`表示版本必须大于`v`; * `>=v`表示版本必须大于等于`v`; * `=3.5`等价于`>=3.5.0`。 对于前缀`~`,规则如下: 如果给出了副阶位`b`,则表示从当前版本开始,到下一个副阶位之前结束。 也就是说: * `~a.b`表示范围`[a.b.0,a.(b+1).0)`; * `~a.b.c`表示范围`[a.b.c,a.(b+1).0)`。 例如: * `~1.9`表示`[1.9.0,1.10.0)`,也就是`[1.9.0,1.9.999]`; * `~1.9.5`表示`[1.9.5,1.10.0)`,也就是`[1.9.5,1.9.999]`; * `~1.0.0`表示`[1.0.0,1.1.0)`,也就是`[1.0.0,1.0.999]`。 如果没有给出副阶位`b`,即版本号只有主阶位`a`,则表示从当前主阶位开始,到下一个主阶位之前结束。 也就是说: * `~a`表示范围`[a.0.0,(a+1).0.0)`。 例如: * `~1`表示`[1.0.0,2.0.0)`,也就是`[1.0.0,1.999.999]`。 注意:`~1`和`~1.0`、`~1.0.0`表示的范围不同。 现在给出若干对版本结界范围。对于每一对范围,判断是否存在至少一个版本号,能够同时满足这两个范围。 如果存在,输出`yes`;否则输出`no`。
这类题属于华为可信认证科目一方向中「可信 / 模拟」方向的高频题型,通常考察对「可信 / 模拟」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
第一行包含一个整数q,表示需要判断的结界范围对数。
接下来q行,每行包含两个字符串spellA和spellB,表示两个版本结界范围,中间用一个空格分隔。
1999.999.999或<0.0.0输出q行。
对于每一对范围,如果存在交集,输出yes;否则输出no。
示例 1
输入示例
5 >=2.4 <2.4.0 ~3.7 =3.7.999 ~3.7.999 =3.8.0 >0.999.999 =1 <=5.0 >5
输出示例
no yes no yes no
第一组:
>=2.4等价于范围[2.4.0,999.999.999];<2.4.0等价于范围[0.0.0,2.3.999];第二组:
~3.7表示范围[3.7.0,3.8.0),也就是[3.7.0,3.7.999];=3.7.999表示范围[3.7.999,3.7.999];第三组:
~3.7.999表示范围[3.7.999,3.8.0),也就是[3.7.999,3.7.999];=3.8.0不在该范围内;第四组:
>0.999.999等价于范围[1.0.0,999.999.999];=1等价于范围[1.0.0,1.0.0];第五组:
<=5.0等价于范围[0.0.0,5.0.0];>5等价于范围[5.0.1,999.999.999];示例 2
输入示例
4 ~8 =8.999.999 ~8.0 =8.999.999 <4.2 >=4.1.999 =0 ~0
输出示例
yes no yes yes
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有