Загрузка...

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

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

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

Реализуйте класс 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 ближе к концу стека
147 / 164