首页 > 其他分享 >成绩表中查找排名第k的学生

成绩表中查找排名第k的学生

时间:2024-06-02 19:29:52浏览次数:35  
标签:成绩表 score students 查找 input sorted 排名第 name

给定一个长度为n的成绩表(成绩表中包含学生的姓名、成绩),以及一个整数k,请设计一个算法求出成绩表从小到大排序后的第k个学生的姓名、成绩(成绩保留到小数点后1位),并列则全部输出。

输入描述:

第一行两个正整数,n和k 然后后n行,每行两个整数,分别代表每个学生的姓名和成绩

输出描述:

所有排名倒数第k的学生信息,多个学生时按其输入时的顺序输出,中间以,分隔。
输入样例:

5 3
小红 87.2
小白 92
小橙 99.3
小绿 87
小蓝 89

输出样例: 小蓝

import sys

input_data = sys.stdin.read().strip().split('\n')
n, k = map(int, input_data[0].split())
students = []
for i in range(1, n+1):
    name, score = input_data[i].split()
    students.append((name, round(float(score), 1)))
students_sorted = sorted(students, key=lambda x: x[1])
kth_score = students_sorted[k-1][1]
result = [name for name, score in students_sorted if score == kth_score]
print(",".join(result))


标签:成绩表,score,students,查找,input,sorted,排名第,name
From: https://blog.csdn.net/m0_62222486/article/details/139378979

相关文章

  • 二分_查找
    intmain(){ intarr[]={1,2,3,4,5,6,7,8,9,10}; intk=7;//要查找的数字 //在这个arr有序数组中查找k的下标的值 intsz=sizeof(arr)/sizeof(arr[0]);//数组的元素个数 intleft=0; intright=sz-1; while(left<=right) { intmid=(left+r......
  • LeetCode 704 二分查找
    第一次提交错误:if-else语句中第二个if前未加else,导致循环出错//二分查找//有序情况下的查找方式,时间复杂度O(logn)//注意左右边界以及停止循环条件left<=right classSolution{publicintsearch(int[]nums,inttarget){......
  • Linux搜索查找类
    1.find  【find指令将从指定目录向下递归遍历其中各个子目录,将满足条件的文件或者目录显示在终端】       案例1:按文件名:根据名称查找/home目录下的hello.txt文件find/home-namehello.txt   案例2:按拥有者:查找/opt目录下,用户名称为Tom的......
  • 如何使用带有 typescript 的 playwright 查找 react 应用程序的 LCP?
    需要获取使用playwright和typescript的react应用程序的最大Contentful画面这是用于网络性能测试的,应该是精确的值我尝试了https://web.dev/articles/lcp#measure-lcp-in-javascript并使用Typescript实现了相同的功能但是我们需要知道,我们是否还有其他东西returnp......
  • 【LeetCode刷题】专题三:二分查找模板
    【LeetCode刷题】Day11专题三:二分查找模板:1.朴素二分模板:2.区间左值模板:3.区间右值模板:题目1:704.二分查找思路分析:思路1:朴素二分查找O(logN)题目2:34.在排序数组中查找元素的第一个和最后一个位置思路分析:思路1:区间左右值二分查找O(logN)专题三:二分查找模板......
  • 完全二叉树查找
    描述有一棵树,输出某一深度的所有节点,有则输出这些节点,无则输出EMPTY。该树是完全二叉树。输入描述输入有多组数据,遇到0时终止输入。每组输入一个n(1<=n<=1000),然后将树中的这n个节点依次输入,再输入一个d代表深度。输出描述输出该树中第d层得所有节点,节点间用空格隔开,最后......
  • Leecode热题100---二分查找--4:寻找两个正序数组的中位数
    题目:给定两个大小分别为m和n的正序(从小到大)数组nums1和nums2。请你找出并返回这两个正序数组的中位数。解法1、暴力解法(归并)思路:合并nums1,nums2为第三个数组排序第三个数组按下标,找出中位数classSolution{public: doublefindMedianSortedArrays(vec......
  • Linux查找文件内容
    从文件内容查找匹配指定字符串的行:$grep"被查找的字符串"文件名例子:在当前目录里第一级文件夹中寻找包含指定字符串的.in文件$grep"thermcontact"*/*.in从文件内容查找与正则表达式匹配的行:$grep–e“正则表达式”文件名查找时不区分大小写:$grep–i"......
  • P9 【力扣+知识点】【算法】【二分查找】C++版
    【704】二分查找(模板题)看到复杂度logN,得想到二分给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target  ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。示例1:输入:nums=[-1,0,3,5,9,12],target=9输出:4解释:9出现在......
  • 【Linux】查找和压缩
    一、文件查找 1、命令查找which  2、文件查找、依赖数据库locate 3、文件查找find语法:find  [path]  [options]   [expression]   [action]①按文件名-name按名-iname可不区分大小写②按文件大小+5M:5M以上文件5M:5M文件-5M:5M以下......