Решение задачи Стек с защитой от ошибок с Яндекс Контест

Без пояснения   Просмотров: 2356


Научитесь пользоваться стандартной структурой данных stack для целых чисел. Напишите программу, содержащую описание стека и моделирующую работу стека, реализовав все указанные здесь методы. Программа считывает последовательность команд и в зависимости от команды выполняет ту или иную операцию. После выполнения каждой команды программа должна вывести одну строчку. Возможные команды для программы:

push n
Добавить в стек число n (значение n задается после команды). Программа должна вывести ok.

pop
Удалить из стека последний элемент. Программа должна вывести его значение.

back
Программа должна вывести значение последнего элемента, не удаляя его из стека.

size
Программа должна вывести количество элементов в стеке.

clear
Программа должна очистить стек и вывести ok.

exit
Программа должна вывести bye и завершить работу.

Перед исполнением операций back и pop программа должна проверять, содержится ли в стеке хотя бы один элемент. Если во входных данных встречается операция back или pop, и при этом стек пуст, то программа должна вместо числового значения вывести строку error.

Код

stack = []
str = input()
while str != 'exit':
    if str.find('push') > -1:
        o, n = str.split(' ')
        stack.append(n)
        print('ok')
    elif str.find('back') > -1:
        if len(stack) > 0:
            print(stack[-1])
        else:
            print('error')
    elif str.find('size') > -1:
        print(len(stack))
    elif str.find('clear') > -1:
        stack = []
        print('ok')
    elif str.find('pop') > -1:
        if len(stack) > 0:
            print(stack[-1])
            del stack[-1]
        else:
            print('error')
    str = input()
print('bye')

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет