本文最后更新于 568 天前,其中的信息可能已经有所发展或是发生改变。
感觉头歌上的很多题的IO描述都不是很严谨,甚至有评测数据和样例不一样的情况....
第1关:重复元素判定
任务描述
本关任务:编写一个函数,接收列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值。同时编写调用这个函数和测试结果的程序。
相关知识
为了完成本关任务,你需要掌握:1.如何访问列表。
编程要求
根据提示,在右侧编辑器补充代码,根据不同的列表,输出True 或者 False.
测试说明
平台会对你编写的代码进行测试:
测试输入:[4,0,1,0,2,3]
; 预期输出: True
def CKdouble(listA):
for i in range(len(listA)):
for j in range(i+1,len(listA)):
if listA[i] == listA[j]:
return False
return True
lst = list(input())
if CKdouble(lst) :
print("False")
else:
print("True")
第2关:文本字符分析(空格居然也要算,难绷)
任务描述
本关任务:编写程序,接收字符串,按字符出现频率的降序打印字母。分别尝试录入一些中英文文章片段,比较不同语言之间字符频率的差别。 输出频率排在前十位的字符及出现次数。用空格隔开。
相关知识
为了完成本关任务,你需要掌握:1.如何遍历字符串;2.如何存储字符出现的频率。
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
测试输入:Seated with Stuart and Brent Tarleton in the cool shade of the porch of Tara, her father's plantation
; 预期输出: 17
t 11
a 10
e 9
h 7
r 7
o 7
n 6
d 3
i 3
str = input()
str = sorted(str) #str已经变列表了
i = 0
while i < len(str): #预处理(删除非中英文的字符)
if '\u4e00' <= str[i] <= '\u9fff' or "a" <= str[i] <="z" or "A" <= str[i] <= "Z" or str[i] == " ":
i += 1
else:
del str[i]
nowChar = str[0]
nowCount = 0
count = {}
for i in range(len(str)): #数个数
if str[i] == nowChar:
nowCount += 1
else:
count[nowChar] = nowCount
nowChar = str[i]
nowCount = 1
count = sorted(count.items(),key=lambda x: x[1], reverse=True) #排个序
for i in range(10):
print(count[i][0], count[i][1])
第3关:如何找出数组中第k小的数
任务描述
本关任务:编写程序,给定一个整数数组,如何快速地求出该数组中第k小的数,假如数组为[4,0,1,0,2,3] ,那么第3小的元素是1.
相关知识
为了完成本关任务,你需要掌握:1.如何遍历数组。 2.如何对数组进行排序。
编程要求
根据提示,在右侧编辑器补充代码。
测试说明
平台会对你编写的代码进行测试:
测试输入:[4,0,1,0,2,3]
,3
; 预期输出: 1
# aList = eval(input()) #这题的测试集有问题,和题目不符,故本方法失效
# numList = aList[0]
# k = aList[1]
aList = list(input())
k = int(input())
for i in range(k-1):
nowMin = min(aList)
while min(aList) == nowMin:
del aList[aList.index(nowMin)]
print(min(aList))