- 迴文檢測:設計程序,檢測一個字符串是否爲迴文。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"))