基本数据结构 — — 双端队列

class Deque:

    def __init__(self):
        self.items = []

    #  将一个元素添加到双端队列的前端
    # (往列表右端添加数据,原数据往左移)
    def addFront(self, data):
        self.items.append(data)

    #  将一个元素添加到双端队列的后端
    # (往列表左端添加数据,原数据往右移)
    def addRear(self, data):
        self.items.insert(0, data)

    #  从双端队列的前端移除一个元素
    # (移除列表右端的一个数据)
    def removeFront(self):
        return self.items.pop()

    #  从双端队列的后端移除一个元素
    # (移除列表左端的一个数据)
    def removeRear(self):
        return self.items.pop(0)

    # 检查双端队列是否为空
    def isEmpty(self):
        return self.items == []

    # 查看双端队列中元素的个数
    def size(self):
        return len(self.items)

    # 打印双端队列
    def __repr__(self):
        return str(self.items)

【例】回文检测器

def checker(s):
    deque = Deque()
    for c in s:
        deque.addFront(c)

    sIsHuiWen = True
    while deque.size() > 1:
        front = deque.removeFront()
        rear = deque.removeRear()

        if front == rear:
            pass
        else:
            sIsHuiWen = False
            break

    return sIsHuiWen

print(checker('toot'))
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。