本地建站软件合肥网站建设开发
2026/4/6 7:53:44 网站建设 项目流程
本地建站软件,合肥网站建设开发,锡盟做网站,源云推广测试用例执行计划 2025华为OD机试- 华为OD上机考试 100分题型 华为OD机试真题目录点击查看: 华为OD机试真题题库目录#xff5c;机考题库 算法考点详解 题目描述 某个产品当前迭代周期内有 N 个特性#xff08;F1,F2,…FN#xff09;需要进行覆盖测试#xff0c;每个特…测试用例执行计划2025华为OD机试- 华为OD上机考试 100分题型华为OD机试真题目录点击查看: 华为OD机试真题题库目录机考题库 算法考点详解题目描述某个产品当前迭代周期内有 N 个特性F1,F2,…FN需要进行覆盖测试每个特性都被评估了对应的优先级特性使用其 ID 作为下标进行标识。设计了 M 个测试用例T1,T2,…,TM每个测试用例对应一个覆盖特性的集合测试用例使用其 ID 作为下标进行标识测试用例的优先级定义为其覆盖的特性的优先级之和。在开展测试之前需要制定测试用例的执行顺序规则为优先级大的用例先执行如果存在优先级相同的用例用例 ID 小的先执行。输入描述第一行输入为 N 和 MN 表示特性的数量0 N ≤ 100M 表示测试用例的数量0 M ≤ 100之后 N 行表示特性 ID1 到特性 IDN 的优先级再接下来 M 行表示测试用例 ID1 到测试用例 IDM 关联的特性的 ID 的列表。输出描述按照执行顺序优先级从大到小输出测试用例的 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说明测试用例的优先级计算如下T1 Pf1 Pf2 Pf3 1 1 2 4T2 Pf1 Pf4 1 3 4T3 Pf3 Pf4 Pf5 2 3 5 10T4 Pf2 Pf3 Pf4 1 2 3 6按照优先级从大到小以及相同优先级ID小的先执行的规则执行顺序为T3,T4,T1,T2用例2输入3 3 3 1 5 1 2 3 1 2 3 1 2 3输出1 2 3说明测试用例的优先级计算如下T1 Pf1 Pf2 Pf3 3 1 5 9T2 Pf1 Pf2 Pf3 3 1 5 9T3 Pf1 Pf2 Pf3 3 1 5 9每个优先级一样按照 ID 从小到大执行执行顺序为T1,T2,T3题解思路模拟 自定义排序使用数组保存各个特性的优先级(由于后续测试用例中特性的序号从1开始这里可以进行优化将对应特性优先级保存在数组{1,n}序号下)计算每个测试用例的总优先级,并以{总优先级测试用例序号}保存到结果数组中。对结果数组进行自定排序,先按照总优先级降序优先级相同按照测试用例序号升序。输出结果。c#includeiostream #includevector #includestring #include utility #include sstream #includealgorithm #includecmath #includemap using namespace std; // 通用 切割函数 函数 将字符串str根据delimiter进行切割 vectorint split(const string str, const string delimiter) { vectorint result; size_t start 0; size_t end str.find(delimiter); while (end ! string::npos) { result.push_back(stoi(str.substr(start, end - start))); start end delimiter.length(); end str.find(delimiter, start); } // 添加最后一个部分 result.push_back(stoi(str.substr(start))); return result; } int main() { int n, m; cin n m; vectorint priority(n1, 0); for (int i 1; i n; i) { cin priority[i]; } // 忽略空行 cin.ignore(); vectorvectorint testCase(m); for (int i 0; i m; i) { string input; getline(cin, input); vectorint chooseCase split(input, ); int totalPriority 0; for (int j 0; j chooseCase.size(); j) { int index chooseCase[j]; totalPriority priority[index]; } // 将序号 1 因为题目测试用例序号1开始 testCase[i] {totalPriority, i 1}; } // 自定义排序 sort(testCase.begin(), testCase.end(), [](const vectorint a, const vectorint b){ if (a[0] b[0]) { return a[1] b[1]; } return a[0] b[0]; }); // 输出结果 for (int i 0; i m; i) { cout testCase[i][1] endl; } return 0; }JAVAimport java.util.*; public class Main { public static void main(String[] args) { Scanner sc new Scanner(System.in); // 读取 n 和 m int n sc.nextInt(); int m sc.nextInt(); sc.nextLine(); // 吃掉换行 // priority 下标从 1 开始每行一个 int[] priority new int[n 1]; for (int i 1; i n; i) { priority[i] sc.nextInt(); } sc.nextLine(); // 吃掉换行 // 存储 [总优先级, 测试用例编号] Listint[] testCase new ArrayList(); for (int i 0; i m; i) { String line sc.nextLine().trim(); String[] parts line.split( ); int totalPriority 0; for (String p : parts) { int idx Integer.parseInt(p); totalPriority priority[idx]; } // 测试用例编号从 1 开始 testCase.add(new int[]{totalPriority, i 1}); } // 排序优先级降序编号升序 testCase.sort((a, b) - { if (a[0] b[0]) { return a[1] - b[1]; } return b[0] - a[0]; }); // 输出结果 for (int[] t : testCase) { System.out.println(t[1]); } } }Pythonimportsys# 读取 n, mn,mmap(int,sys.stdin.readline().split())# priority 下标从 1 开始每行一个priority[0]for_inrange(n):priority.append(int(sys.stdin.readline().strip()))test_case[]foriinrange(m):choose_caselist(map(int,sys.stdin.readline().split()))total_priority0foridxinchoose_case:total_prioritypriority[idx]test_case.append((total_priority,i1))# 排序优先级降序编号升序test_case.sort(keylambdax:(-x[0],x[1]))# 输出for_,idxintest_case:print(idx)JavaScriptconstreadlinerequire(readline);constrlreadline.createInterface({input:process.stdin,output:process.stdout});constlines[];rl.on(line,line{lines.push(line.trim());});rl.on(close,(){letpos0;const[n,m]lines[pos].split( ).map(Number);// priority 下标从 1 开始每行一个constpriority[0];for(leti0;in;i){priority.push(Number(lines[pos]));}consttestCase[];for(leti0;im;i){constchooseCaselines[pos].split( ).map(Number);lettotalPriority0;for(constidxofchooseCase){totalPrioritypriority[idx];}testCase.push([totalPriority,i1]);}// 排序优先级降序编号升序testCase.sort((a,b){if(a[0]b[0])returna[1]-b[1];returnb[0]-a[0];});// 输出letres;for(consttoftestCase){rest[1]\n;}console.log(res);});Gopackagemainimport(bufiofmtossortstrings)funcmain(){in:bufio.NewReader(os.Stdin)varn,mintfmt.Fscan(in,n,m)// priority 下标从 1 开始每行一个priority:make([]int,n1)fori:1;in;i{fmt.Fscan(in,priority[i])}// 吃掉换行in.ReadString(\n)testCase:make([][2]int,m)fori:0;im;i{line,_:in.ReadString(\n)parts:strings.Fields(line)totalPriority:0for_,p:rangeparts{varidxintfmt.Sscanf(p,%d,idx)totalPrioritypriority[idx]}testCase[i][2]int{totalPriority,i1}}// 排序优先级降序编号升序sort.Slice(testCase,func(i,jint)bool{iftestCase[i][0]testCase[j][0]{returntestCase[i][1]testCase[j][1]}returntestCase[i][0]testCase[j][0]})writer:bufio.NewWriter(os.Stdout)fori:0;im;i{fmt.Fprintln(writer,testCase[i][1])}writer.Flush()}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询