7.Deque的應用案例-迴文檢查

- 迴文檢測:設計程序,檢測一個字符串是否爲迴文。spa

- 迴文:迴文是一個字符串,讀取首尾相同的字符,例如,radar toot madam設計

- 分析:該問題的解決方案將使用 deque 來存儲字符串的字符。咱們從左到右處理字符串,並將每一個字符添加到 deque 的尾部。在這一點上,deque 像一個普通的隊列。然而,咱們如今能夠利用 deque 的雙重功能。 deque 的首部保存字符串的第一個字符,deque 的尾部保存最後一個字符。咱們能夠直接刪除並比較首尾字符,只有當它們匹配時才繼續。若是能夠持續匹配首尾字符,咱們最終要麼用完字符,要麼留出大小爲 1 的deque,取決於原始字符串的長度是偶數仍是奇數。在任一狀況下,字符串都是迴文。3d

from basic.deque import Deque

def palchecker(aString):
    chardeque = Deque()

    for ch in aString:
        chardeque.addRear(ch)

    stillEqual = True

    while chardeque.size() > 1 and stillEqual:
        first = chardeque.removeFront()
        last = chardeque.removeRear()
        if first != last:
            stillEqual = False

    return stillEqual

print(palchecker("lsdkjfskf"))
print(palchecker("radar"))
相關文章
相關標籤/搜索