题目转载:http://python.wzms.com/s/1/107
题目描述:
合唱队形是指这样的一种队形:设N位同学从左到右依次编号为1,2…,N,他们的身高分别为T1,T2,…,Tn
则他们的身高满足T1 < T2 < … < Ti > Ti+1 > … > Tn ( 1<=i<=n ),(先 递增再递减 或者 单调递增 或者 单调递减 都是可以的)。
你的任务是,已知所有N位同学的身高,求出是否有这样的 i 满足合唱队形的条件。
注意:顺序不能改变
输入格式:
第一行是一个整数N ( 2<=N<=100 ) ,表示同学的总数。
下一行有n个整数,用空格分隔,第i个整数Ti ( 130<=Ti<=230 )是第i位同学的身高(厘米)。
输出格式:
输出包括一行,这一行只包含一个整数,就是一个满足合唱队形的 i。如果没有这样的就输出“NoAnsweR!”
- 对象:N位同学,同学编号,同学身高
- 动作:输入,判断身高是否满足合唱队形的条件,输出
- 对应关系:
- N位同学——用元组的元素表示
- 同学编号——用元组的索引表示 i
- 同学身高——用元组的元素值表示 Ti
- 输入——input
- 判断身高是否满足合唱队形的条件——while循环 + if判断
- 输出——print
代码:
N = int(input())
height_list = list(map(int, input().split()))
Ti = max(height_list)
Ti_index = height_list.index(Ti)
# 先递增再递减的情况
leap = 0
i = 0
# 判断前半段
if Ti_index > 0:
while height_list[i] < height_list[i+1]:
i += 1
if i == Ti_index:
break
else:
leap = 1
print('NoAnsweR!')
# 判断后半段
i = Ti_index
if Ti_index < (len(height_list)-2):
while height_list[i] > height_list[i+1]:
i += 1
if i == len(height_list)-2:
break
else:
leap = 1
print('NoAnsweR!')
if leap == 0:
print(Ti_index + 1)
运行结果: