little exercise
daily learn
素数问题 2020.7.20
输出素数还能这么写
import math
for num in range(2, 100):
is_prime = True
for factor in range(2, int(math.sqrt(num)) + 1):
if num % factor == 0:
is_prime = False
break
if is_prime:
print(num, end=' ')
身高 输入 输出 2020.8.11
Q:输入说明:
第一行输入n代表队伍中的人数
第二行输入队伍中每个人的身高(用空格隔开)比如输入:
5
2 3 1 5 4
6
5 4 1 6 8 2输出说明:
如果现在所在位置之前没有比自己身高高的,数值变为-1,如果现在所在位置之前有比自己身高高的,数值变为所在位置之前那个离自己最近的且比自己高的那个人的身高上例的输入对应输出:
5
-1 -1 3 -1 4
6
-1 5 4 -1 -1 8
class Solution:
def people(self, a, b):
if a == 0:
return '没有人?'
if a == 1:
return -1
res = [-1] # 第一个一定是-1,那就设第一个为-1的列表
for i in range(1, a):
temp = b[:i]
if b[i] >= max(temp):
res.append(-1) # 前面没有比他高的就加个-1
else:
temp.reverse() # 倒转 从头找,找到就break ,记住 reverse()返回值为none
for item in temp:
if item > b[i]:
res.append(item)
break
return res
if __name__ == '__main__':
s = Solution()
num1 = int(eval(input('输入人数:')))
num2 = input('输入身高:').split(' ')
m = list(map(int, num2))
print(s.people(num1, m))