这个如何理解,(python)

这个怎么理解?
(骚瑞原谅我凑个字数,不达标发不出呜哇T﹏T)

img

答案是什么

【参考答案】C、LCYKU

img

img


先输出一个,接下那个先出队再入队(队尾),然后继续输出一个,再出队入对.依次循环.... 这个不难理解吧

class Queue:
    def __init__(self):
        self._queue = []

    # 入队,列表尾部定义为队尾
    def qin(self, val):
        self._queue.append(val)

    # 出队
    def qout(self):
        if self._queue:
            return self._queue.pop(0)
        return False

    # 判断队列是否为空
    def is_empty(self):
        return self._queue == []


q = Queue()
q.qin('L')
q.qin('U')
q.qin('C')
q.qin('K')
q.qin('Y')

while not q.is_empty():
    t = q.qout()
    print(t)
    if q.is_empty():
        break
    t = q.qout()
    q.qin(t)

执行结果: LCYKU 选C.

可以理解为: LUCKY,一次出2个字母,打印前一个,入队后一个;反复这个步骤直到队列为空。

  1. 出LU, 打印L,进U,队列变为 CKYU
  2. 出CK,打印C,进K,队列变为 YUK
  3. 出YU,打印Y,进U,队列变为 KU
  4. 出KU,打印K,进U,队列变为 U
  5. 出U,队列为空,打印U,循环结束退出
    所以打印 LCYKU

可以查看手册:python- 接下来? 中的内容

首先根据题意给出操作
1.队首出队输出
2.队首出对再入队(这时候他会被放在队尾)
3.重复1和2的操作直到队列为空。
所以你只要按照顺序自己模拟1和2的操作,然后就能得出答案。