Задача Leetcode 1700. Количество студентов, которые не могут пообедатьPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Задача Leetcode 1700. Количество студентов, которые не могут пообедать

Сообщение Anonymous »

Во время обеденного перерыва в школьной столовой предлагаются круглые и квадратные сэндвичи, обозначенные цифрами 0 и 1 соответственно. Все студенты стоят в очереди. Каждый студент предпочитает либо квадратные, либо круглые сэндвичи.
Количество сэндвичей в столовой равно числу студентов. Бутерброды складываются стопкой. На каждом этапе:
Если учащийся, стоящий в начале очереди, предпочитает бутерброд, находящийся на вершине стопки, он возьмет его и покинет очередь.
В противном случае он покинет его и пойдет в конец очереди.
Это продолжается до тех пор, пока ни один из студентов в очереди не захочет взять верхний бутерброд и, следовательно, не сможет его съесть.
Вам дадут два целочисленные массивы студенты и сэндвичи, где сэндвичи — это тип i​​​​​​​гого сэндвича в стеке (i = 0 — вершина стека), а студенты[j] — это предпочтение j​ ​​​​​й студент в начальной очереди (j = 0 — начало очереди). Возвращает количество студентов, которые не могут есть.
Пример 1:

Код: Выделить всё

Input: students = [1,1,0,0], sandwiches = [0,1,0,1]
Output: 0
Объяснение:
  • Передний ученик оставляет верхний сэндвич и возвращается в конец очереди, образуя учеников = [1 ,0,0,1].
  • Передний ученик покидает верхний сэндвич и возвращается в конец очереди, образуя учеников = [0,0,1,1].
  • Передний ученик берет верхний сэндвич и выходит из очереди, образуя учеников = [0,1,1] и сэндвичей = [1,0,1].
  • Спереди ученик покидает верхний сэндвич и возвращается в конец очереди, образуя учеников = [1,1,0].
  • Передний ученик берет верхний сэндвич и покидает линию, образуя учеников = [1 ,0] и сэндвичи = [0,1].
  • Передний ученик покидает верхний сэндвич и возвращается в конец строки, образуя учеников = [0,1].
  • Передний ученик берет верхний сэндвич и выходит из очереди, образуя учеников = [1] и сэндвичей = [1].
  • Передний ученик берет верхний сэндвич и оставляет учащиеся составляют линии = [] и бутерброды = [].
Значит, все учащиеся могут есть.
Пример 2:

Код: Выделить всё

Input: students = [1,1,1,0,0,1], sandwiches = [1,0,0,0,1,1]
Output: 3

Код: Выделить всё

class Solution:
def countStudents(self, students: List[int], sandwiches: List[int]) -> int:
queue = deque(students)
stack=[]
count=0
stack.extend(sandwiches)
while count< len(stack):
if queue[0]== stack[-1]:
queue.popleft()
stack.pop()
count =0
else:
j=queue.popleft()
queue.append(j)
count+=1
return len(stack)

Мой код не работает для этого тестового примера,

Код: Выделить всё

Input: students = [1,1,1,0,0,1], sandwiches = [1,0,0,0,1,1]
Output: 3
Мой код получает результат 2
Невозможно получить, где я допустил ошибку.
Кто-нибудь может помочь?
Я не могу понять, где я ошибся.

Подробнее здесь: https://stackoverflow.com/questions/783 ... -eat-lunch
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Задача LeetCode: количество лазерных лучей в банке
    Anonymous » » в форуме C++
    0 Ответы
    41 Просмотры
    Последнее сообщение Anonymous
  • Задача LeetCode: количество лазерных лучей в банке
    Anonymous » » в форуме C++
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Задача LeetCode: количество лазерных лучей в банке
    Anonymous » » в форуме C++
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как удалить старые развертывания (версии) в Google Apps Script, если у меня более 1700 активных или заархивированных вер
    Anonymous » » в форуме Html
    0 Ответы
    81 Просмотры
    Последнее сообщение Anonymous
  • У меня есть изображение 1700, но для рендеринга в React JS потребуется 30 секунд [закрыто]
    Anonymous » » в форуме Javascript
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»