1. 程式人生 > >python--使用雙向隊列結構檢查回文

python--使用雙向隊列結構檢查回文

相同 後端 deque insert remove 出隊 sad end pytho

這個簡單,隊列可兩邊進兩邊出。

# coding = utf-8


# 雙向進出隊列
class Deque:
    def __init__(self):
        self.items = []

    def is_empty(self):
        return self.items == []

    def size(self):
        return len(self.items)

    def add_front(self, item):
        self.items.append(item)

    def add_rear(self, item):
        self.items.insert(0, item)

    def remove_front(self):
        return self.items.pop()

    def remove_rear(self):
        return self.items.pop(0)


# 回文檢查
def pal_check(check_str):
    deque = Deque()
    for item in check_str:
        deque.add_front(item)
    is_pal = True

    # 如果奇數文字,最後一個可不用對比
    while deque.size() > 1 and is_pal:
        # 比較前端和後端進出隊列是否相同
        if deque.remove_front() != deque.remove_rear():
            is_pal = False
    return is_pal


print(pal_check(‘radar‘))
print(pal_check(‘toot‘))
print(pal_check(‘tooth‘))
print(pal_check(‘4356sdfgdsad678‘))

  

python--使用雙向隊列結構檢查回文