Задача Python. Текущая длительность котировок

Задача Python. Текущая длительность котировок

t.me/pythonl

Сложность: Средняя

Условие задачи: разработайте алгоритм, который сохраняет котировки некоторой акции текущего дня и осуществляет подсчёт, сколько дней до этого стоимость бумаг была меньше или равна цена на текущий день (включая текущий день). 

Пример:

Ввод: ["StockSpanner", "next", "next", "next", "next", "next", "next", "next"]

[[], [100], [80], [60], [70], [60], [75], [85]]

Вывод: [null, 1, 1, 1, 2, 1, 4, 6]

Объяснение:

StockSpanner stockSpanner = new StockSpanner();

stockSpanner.next(100); // return 1

stockSpanner.next(80); // return 1

stockSpanner.next(60); // return 1

stockSpanner.next(70); // return 2

stockSpanner.next(60); // return 1

stockSpanner.next(75); // return 4, так как цены за четыре предыдущих дня (включая сегодняшний) были меньше или равны;

stockSpanner.next(85); // return 6

def next(self, price: int) -> int:
    count=1
    while self.stack and self.stack[-1][0]<=price:       #while stack is not empty and top elem is less then current price
        elem=self.stack.pop()             
        count+=elem[1]
        
    self.stack.append((price,count))                 #append price and count
    return count



Report Page