第一题 是我理解错了吗?给出一列天气温度,输出距离下次降温的天数
例子:
输入:73,74,75,71,69,72,76,73
输出:3,2,1,1,0,0,1,0
输出:3,2,1,1,0,0,1,0
思路:遍历,如果当前元素温度小于栈顶温度则出栈,记录栈顶元素对应的天数答案(为当前元素的下标-栈顶元素的下标),随后当前元素的(温度、下标)对入栈。
while True: try: nums = [int(i) for i in input().split()] l = len(nums) if l == 1: print("0") else: stack = [] res = ["0" for i in range(l)] for i in range(l): while stack != [] and stack[-1][0] > nums[i]: tmp = stack.pop() idx = tmp[1] res[idx] = str(i - idx) stack.append((nums[i],i)) print(",".join(res)) except: break本地IDE似乎没问题,但是提交一直不通过!!!?过的20%我猜是那个“0”。。。
求指点,谢谢!
全部评论
(1) 回帖