01 Descending mountains
第一个测试数据很简单,山高从高到低依次输入,所以我们仅需要依次循环山名即可。具体代码如下:
while True:
for i in range(8):
mountain_h=int(input())
for i in range(8):
print(i)
02 Scattered mountains
第二个测试数据稍微有些复杂,山名与山的高度不是依次排序,这里我们用到python中的字典,代码如下:
while True:
dict1={}#建立空字典
for i in range(8):#添加山名与对应山高到空字典中
mountain_h = int(input())
key=i
value=mountain_h
dict1[key]=mountain_h
dict1.items()
L=list(dict1.items())#遍历字典中的键值并保存到列表中
L.sort(key=lambda x:x[1],reverse=True)#用列表的排序语法来从高到低排列山名
for i in range(8):#从高到低输出山名
mountain_n=str(L[i])
print(mountain_n[1:2])
03 Strong mountains 1
这个测试数据中的山1、2、3中各需要摧毁两次,所以我们需要在原来的基础上用个if,暴力摧毁。代码如下:
while True:
dict1={}
for i in range(8):
mountain_h = int(input())
key=i
value=mountain_h
dict1[key]=mountain_h
dict1.items()
L=list(dict1.items())
L.sort(key=lambda x:x[1],reverse=True)
for i in range(8):
mountain_n=str(L[i])
if mountain_n[1:2]=='1':#这里摧毁1的时候顺带摧毁3,因为1第一次掉4点,3第一次掉2,导致3比1高,再循环会坠机。
print('1')
print('3')
if mountain_n[1:2]=='2':
print('2')
print(mountain_n[1:2])