Загрузка...
Назад к задачам

Стек с частотой элементов

  • Сложная
  • Не решено

Создайте стеко-подобную структуру данных, в которую можно добавлять элементы и извлекать самый часто встречающийся элемент.

Реализуйте класс FreqStack:

  • FreqStack() должен создавать пустой стек
  • push(value) добавляет значение value (типа int) в конец стека, этот метод ничего не возвращает
  • pop() извлекает из стека самый часто встречающийся элемент и удаляет его из стека
  • get() возвращает список всех элементов

Примечание: Если несколько элементов встречаются одинаковое количество раз, то метод pop возвращает тот, который ближе к концу стека.

Пример 1:

obj = FreqStack()
# Создается пустой стек

obj.push(5)
obj.push(7)
obj.push(5)
obj.push(7)
obj.push(4)
obj.push(5)
# Имеем [5,7,5,7,4,5]

obj.pop()
# Имеем [5,7,5,7,4], т.к. 5 встречается больше всего раз

obj.pop()
# Имеем [5,7,5,4], т.к. 5 и 7 встречаются одинаковое количество раз, но 7 ближе к концу стека
Вы видели эту задачу на собеседовании?
/
107 / 124