当前位置:   article > 正文

OD C卷 - 测试用例执行计划

OD C卷 - 测试用例执行计划

测试用例执行计划 (100)

  • 某产品有n个特性,每个特性有一个优先级;
  • 设计m个测试用例,每个测试用例对应一个特性的集合,测试用例的优先级为其对应特性的优先级之和;
  • 测试用例按照优先级大的先执行,优先级相同则ID小的先执行;
    输入描述:
    第一行输入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

示例2
输入:
3 3
3
1
5
1 2 3
1 2 3
1 2 3
输出:
1
2
3

思路:
简单排序问题

 
class TestCase:
    def solution(self, test_case_pri_list, m):
        idx_list = [i for i in range(m)]

        # 值相同时,索引保持从小到大
        idx_list.sort(key=lambda i: test_case_pri_list[i], reverse=True)
        # 恢复测试用例ID
        for idx in idx_list:
            print(idx+1)


if __name__ == '__main__':
    test_case = TestCase()
    while True:
        try:
            n, m = list(map(int, input().strip().split()))
            feature_pri_list = []
            test_case_pri_list = []
            for i in range(n):
                feature_pri_list.append(int(input().strip()))
            for i in range(m):
                val = [feature_pri_list[j-1] for j in list(map(int, input().strip().split()))]
                test_case_pri_list.append(sum(val))
            test_case.solution(test_case_pri_list, m)
        except KeyboardInterrupt:
            break
  • 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

 

lambda排序:
test_case = [(ID, pri)]
test_case.sort(key=lambda i:(i[1]*(-1), i[0]))
先按照优先级降序排序,(优先级相同)再按照ID升序排序

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Li_阴宅/article/detail/1013436
推荐阅读
相关标签
  

闽ICP备14008679号