Last updated
Last updated
回文的題目會獨立出來,是因為回文的題目的變化非常多,而且根據題目的變化,回文的題目解決的方法可以是遞迴、動態規劃、雙指針...等各種常見的演算法考題,所以我想要把所有回文的題目整理在一起,在真的寫回文的題目的時候可以有更多想法。
首先回文的概念並不難,那就是從前面讀和從後面讀,其字元的順序完全一樣,例如: level
,反過來寫也是 level
。
而要注意回文並不一定是只有奇數個數字可以組成,例如:aa
雖然不是一個有意義的英文單字,但是也是一組回文,所以回文的組成要考慮奇數個字元或是考慮偶數個字元。
當字串是奇數個個數時,我們可以從最外面往內去比較,最後一直比較到最中間的字元的時候,一定會剛好上剩下一個字元,這個時候就可以不用考慮了,因為當只有一個字元時,這個字元也一定符合回文的條件,或是我們如果要從字串的中間往外去比較,那我們也可以不用考慮最中間的字元,只要從中間出發,繼續向外擴展就好。
題目可以先從 和先試著寫出怎麼判斷回文。接著再試著練習 。
比較直覺的題目就會是注意兩邊的指針在跨越中間點時,就是回文檢查完成之時,而比較困難的題目會是我們要在題目中,不斷的考慮今天的題目會是偶數個字元還是奇數個字元: 。