Решение задачи Дек с защитой от ошибок с Codeforces

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


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

Возможные команды для программы:

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

push_back n
Добавить (положить) в конец дека новый элемент. Программа должна вывести ok.

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

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

front
Узнать значение первого элемента (не удаляя его). Программа должна вывести его значение.

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

size
Вывести количество элементов в деке.

clear
Очистить дек (удалить из него все элементы) и вывести ok.

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

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

Код

queue = []
str = input()
while str != 'exit':
    if str.find('push_front') > -1:
        o, n = str.split(' ')
        queue = [n] + queue
        print('ok')
    elif str.find('push_back') > -1:
        o, n = str.split(' ')
        queue.append(n)
        print('ok')
    elif str.find('pop_front') > -1:
        if len(queue) > 0:
            print(queue[0])
            del queue[0]
        else:
            print('error')
    elif str.find('pop_back') > -1:
        if len(queue) > 0:
            print(queue[-1])
            del queue[-1]
        else:
            print('error')
    elif str.find('front') > -1:
        if len(queue) > 0:
            print(queue[0])
        else:
            print('error')
    elif str.find('back') > -1:
        if len(queue) > 0:
            print(queue[-1])
        else:
            print('error')
    elif str.find('size') > -1:
        print(len(queue))
    elif str.find('clear') > -1:
        queue = []
        print('ok')
    str = input()
print('bye')

         

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



Комментарии

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



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