华为od机试真题 — 测试用例执行计划(Python)

alt

题目描述

某个产品当前迭代周期内有N个特性(F1, F2, ..., FN)需要进行覆盖测试,每个特性都被评估了对应的优先级,特性使用其ID作为下标进行标识。

设计了M个测试用例(T1, T2,...,TM),每个用例对应了一个覆盖特性的集合,测试用例使用其ID作为下标进行标识,测试用例的优先级定义为其覆盖的特性的优先级之和。

在开展测试之前,需要制定测试用例的执行顺序,规则为:优先级大的用例先执行,如果存在优先级相同的用例,用例ID小的先执行。

输入描述

第一行输入为N和M,N表示特性的数量,M表示测试用例的数量。

之后N行表示特性ID=1到特性ID=N的优先级。

再接下来M行表示测试用例ID=1到测试用例ID=M关联的特性的ID的列表。

输出描述

按照执行顺序(优先级从大到小)输出测试用例的ID,每行一个ID。

示例1

输入
5 4
1
1
2
3
5
1 2 3
1 4
3 4 5
2 3 4输出
3
4
1
2

image-20240217222555987

示例2

输入
3 3
3
1
5
1 2 3
1 2 3
1 2 3输出
1
2
3

image-20240217222705104

题解

这是一个简单的模拟题,要求按照测试用例的优先级和ID进行排序,优先级高的用例先执行,如果优先级相同则按照ID升序排列。

解题思路:
  1. 首先读取输入,包括特性数量n、测试用例数量m,以及每个特性的优先级和每个测试用例所覆盖的特性。
  2. 将特性优先级存储在一个映射(Map)中,以特性ID作为键,优先级作为值。
  3. 计算每个测试用例的优先级,即将测试用例覆盖的特性的优先级求和。
  4. 将测试用例的优先级和ID存储在一个二维数组或者二元组中,并按照优先级降序、ID升序的顺序进行排序。
  5. 输出排序后的测试用例ID。

Python

# 读取输入的特性数量n和测试用例数量m
n, m = map(int, input().split())# 用字典存储每个特性的优先级,键是特性ID,值是优先级
feature_priority = {}
for id in range(1, n + 1):feature_priority[id] = int(input())# 用列表存储测试用例的信息,每个元素是一个元组(测试用例优先级, 测试用例ID)
test_cases = []
for id in range(1, m + 1):test_case_priority = 0# 读取当前测试用例覆盖的特性ID列表feature_ids = list(map(int, input().split()))# 计算当前测试用例的优先级,等于其覆盖的所有特性的优先级之和for feature_id in feature_ids:test_case_priority += feature_priority[feature_id]# 将当前测试用例的优先级和ID作为一个元组加入列表,优先级取负数test_cases.append((-test_case_priority, id))# 按照测试用例优先级(优先级高的在前)和ID(ID小的在前)进行排序
test_cases.sort()# 输出排序后的测试用例ID
for test_case_priority, id in test_cases:print(id)

(-test_case_priority, id) 为什么要用 -test_case_priority?
使用 -test_case_priority 是因为我们希望按照优先级从大到小进行排序,而 Python 的 sort() 函数默认是从小到大排序的。通过将优先级取负数,我们可以利用默认的升序排序来实现降序排序。

🙏整理题解不易, 如果有帮助到您,请给点个赞 ‍❤️‍ 和收藏 ⭐,让更多的人看到。🙏🙏🙏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/46821.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Richtek立锜科技可用于智能门铃的电源管理解决方案

新型的智能门铃不仅能满足呼叫、提醒的需要,还能在线监控、远程操作、闯入通知、记录过程,系统构成相对复杂,与传统门铃相比有了很大的改变。 从电源管理的角度来观察,满足这样需求的系统构成也相对复杂: 处于外置状态…

一个糟糕的决策带来无尽的折磨

一个糟糕的决策带来无尽的折磨 你也时常有这种感觉么?怎么每次迭代都让人感觉很费劲,很疲惫,似乎每次都要对之前的代码进行修改才能满足本次迭代的需求。 整个项目像是一团乱麻一样理不清楚,项目工程给人一次性纸杯的感觉&#xf…

雅思阅读 答题技巧和题型归纳总结 看着一篇就够了

下面给大家介绍一下雅思阅读中常见的十种题型,以及各个题型烤鸭们经常遇到的问题,最后介绍一下针对该题型的做题步骤与技巧,纯干货,认真阅读。 图:阅读理解选择题 第一种题型:选择题 选择题其实是在考你对于原文中提…

爬虫学习 | 02 认识爬虫spider

网络爬虫(Web Crawler),也被称为网页蜘蛛(Spider)、网页机器人(Robot)或爬虫(Crawler),是一种自动浏览互联网的程序。它的主要任务是按照一定的算法扫描和访问…

MySQL篇:主从复制

概述 话不多说,直接上概念: DDL(Data Definition Language)语句: 数据定义语言,主要是进行定义/改变表的结构、数据类型、表之间的链接等操作。常用的语句关键字有 CREATE、DROP、ALTER 等。 DML&#xff…

【测试】总体测试计划(Word直接套用完整版)

测试目标:确保项目的需求分析说明书中的所有功能需求都已实现,且能正常运行;确保项目的业务流程符合用户和产品设计要求;确保项目的界面美观、风格一致、易学习、易操作、易理解。 软件全套文档过去进主页。 一、 前言 &#xff0…

C语言题目之打印菱形

文章目录 一、题目二、思路三、代码实现 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 二、思路 本题目是要求打印菱形,对于这种打印的题目而言,我们能正确的写出代码,就得找到规律 第一步 我们先对整个菱…

【Python】基础语法(函数、列表和元组、字典、文件)

。一、函数 1、函数是什么 编程中的函数和数学中的函数有一定的相似之处。 数学上的函数,比如 y sin x,x 取不同的值,y 就会得到不同的结果。 编程中的函数是一段可以被重复使用的代码片段。 (1)求数列的和&…

【AI伦理挑战下的应对策略】构建隐私保护、算法公正与深度伪造管控机制

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《热点时事》 期待您的关注 目录 引言 一、构建可靠的AI隐私保护机制 1.1 隐私保护的重要性 1.2 数据最小化与匿名化处理 1.3 …

【轻松拿捏】Java都有哪些特性?

Java都有哪些特性? 1. 面向对象 2. 平台无关性 3. 简单性 4. 安全性 5. 内存管理 6. 多线程 7. 动态性 8. 分布式计算 9. 健壮性 10. 高性能 11. 丰富的标准库 12. 社区支持和生态系统 13. 可移植性 14. 安全性和强类型 15. 模块化和可扩展性 总结 …

贪心,CF 1891C - Smilo and Monsters

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1891C - Smilo and Monsters 二、解题报告 1、思路分析 操作二显然很划算的,但是操作2有代价,为了更划算,我们要让操作2的操作次数最少 即,操作二尽可能用在…

make2s:自动编译

模板Makefile,编译多个C/C模块成不同优化级别的平台相关的汇编码。

git查看历史记录方法

0 Preface/Foreword 1 git reflog git reflog显示所有的操作,不仅仅是commit,也包括git pull,checout等动作。 1.1 查看本地和远程仓库的区别 远程仓库:中间的提交是直接在web端编辑 远程仓库:最新的提交是在本地编…

超市管理系统 需求分析与设计 UML 方向

一、项目介绍 1.1项目背景 随着经济一体化和电子商务的迅速发展,网络传播信息的速度打破了传统信息传递的模式,互联网的高速发展和计算机应用在各个高校进展迅速,更多信息化产品的突飞猛进,让现代的管理模式也发生了巨大的变化&…

【Linux】04.Linux 下的软件包管理器——yum

一、常见的软件安装方式 yum安装rmp安装源码安装 其中rmp安装较麻烦,源码安装对用户要求较高,因此我们最常用的是yum安装。 二、软件生态 现实中我们如何评估一款操作系统的好坏呢,又如何选择一款操作系统呢? 我们选择操作系统…

PostgreSQL 如何应对因大量并发更新导致的锁竞争?

🍅关注博主🎗️ 带你畅游技术世界,不错过每一次成长机会!📚领书:PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 如何应对因大量并发更新导致的锁竞争一、锁竞争的原因及影响(一)什…

国外的一组B端界面,个性化是标配,为什么?

因为国外商务合作关系非常的纯粹,我出钱你出力,你干好我买单,没有这么多弯弯绕。 匠心接单中...8年前端开发和UI设计接单经验,完工项目1000,持续为友友们分享有价值、有见地的干货观点,有业务需求的老铁&am…

[A-04] ARMv8/ARMv9-Cache的相关策略

ver0.3 前言 前面我们已经通过三篇文章反反复复的讲Cache的概念、结构、架构,相信大家对Cache已经大概有了初步的了解。这里简单归纳一下: (1) Cache从硬件视角看,是连接PE-Core和主存的一种存储介质,存储的数据是主存中数据的副本&#xf…

完美解决ImportError: cannot import name ‘PILLOW_VERSION‘的正确解决方法,亲测有效!!!

完美解决ImportError: cannot import name PILLOW_VERSION’的正确解决方法,亲测有效!!! 亲测有效 完美解决ImportError: cannot import name PILLOW_VERSION的正确解决方法,亲测有效!!&#xf…

鸿蒙模拟器(HarmonyOS Emulator)Beta申请审核流程

文 | Promise Sun 一.背景: 鸿蒙项目开发需要使用模拟器进行开发测试,但目前想在DevEco Studio开发工具中使用模拟器就必须到华为官网进行报名申请,参加“鸿蒙模拟器(HarmonyOS Emulator)Beta活动申请”。 申请审核通…