题目描述
给定某只股票连续N天的价格列表stockPrices,其中stockPricesi表示股票某天的价格,请生成一个新列表,对应位置输出为:要想等到股票价格上涨,至少需要等待的天数,如果股票价格不上涨,对应位置输出为0。
输入
第一行 表示第二行元素的个数N
第二行为用空格隔开的整数,表示每天股票的价格
其中0<N<=1000000每天股票价格为正整数
输出
输出为用空格分隔的长度为N的列表,对应位置为:要想等到股票价格上涨至少需要等待的天数
示例1
输入:
5
33 34 14 12 16
输出:
1 0 2 1 0
解释: stockPrices =[33,34,14,12,16]
- 当i=0时,stockPrices[0]=33,下次价格上涨stockPrices[1]=34,此处输出为1-0=1
- 当i=1时,stockPrices[1]=34,后续股票价格没有上涨,此处输出0
- 当i=2时,stockPrices[2]=14,下次价格上涨stockPrices[4]=16,此处输出为 4-2=2
- 当i=3时,stockPrices[3]=12下次价格上涨stockPrices[4]=16,此处输出为 4-3=1
- 当i=4时,stockPrices[3]=16,后续股票价格没有上涨,此处输出0所以输出为1 0 2 1 0
示例2
输入:
5
12 13 14 15 16
输出:
1 1 1 1 0
python 代码
if __name__ == '__main__':
# n = int(input("请输入股票连续上涨的天数"))
#
# stockPrice = str(input("股票的价格列表"))
n = 5
stockPrice = "33 32 31 12 16"
stock_price_list = stockPrice.split(" ")
print(stock_price_list)
list_day = []
for index, value in enumerate(stock_price_list):
next_index = index + 1
if next_index == n:
list_day.append(0)
break
while stock_price_list[next_index] < value:
next_index += 1
if next_index >= n:
next_index = index
break
list_day.append(next_index - index)
print(list_day)
欢迎大家讨论,指正