基本數據結構 — — 雙端隊列

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'))
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容