Leetcode初學 回文數

2021-10-02 05:55:09 字數 960 閱讀 7291

判斷回文數真的是非常常見了,不過我們大多是將其轉換為字串之後再來判斷

所以這道題,我們直接做高階版,不將其轉換為字串

做這道題的時候,我突然想起了 「棧」,我們可以將乙個數拆分開來,存到乙個list中,然後取它的最後一位數存到另乙個list中,之後比對兩個list是否相同(如果奇數就比對前n/2個)

所以我寫出如下**:

class solution 

for(int i=0;i前三個判斷條件是直接對特殊情況進行判斷,如小於0的數,一位數,以及最後一位是0的整數

執行結果如下:

在結尾呢,再給大家分享乙個我剛學到的判斷回文數的方法,雖然是用的string型別

///簡單粗暴,看看就行

class solution

}

這個方法的關鍵在reverse(),這個方法的用處就是將輸入流倒序輸出

假如輸入流是 「123456」,那麼倒序輸出後「654321」

如果x是回文數的話,那麼倒序後的數和原數必定相等。

不過實際使用效率似乎並不是很高

下面給大家推薦乙個效率較高的

class solution {

private boolean ispalindrome(string s) {

int i=0;

int j=s.length()-1;

while (i這個的效率要比上乙個高許多,且**量較少,也簡單易懂

初學回文自動機

回文這個東西,有一些不錯的演算法。比如馬拉車演算法,就是一種非常優秀的演算法。我也學過一篇有關馬拉車的文章,非常的簡單易懂。但我們今天講的是比馬拉車更強的演算法 回文自動機。回文自動機和ac自動機有一些類似的地方,所以有興趣的同學可以看這篇文章來了解 ac自動機 好了,在開始今天的正文之前,我們得先...

初學回文自動機

回文自動機,據說是解決回文問題的利器。最近剛好遇到一道回文問題,加上正好閒著沒事幹,就來學了學。感覺板子還是非常簡潔的,容易記憶。與一般自動機類似,定義乙個節點的資訊。一般包括表示長度 fail 指標 後繼節點,當然視具體題目還要維護一些特殊資訊。但也要注意回文自動機與一般自動機的區別,就是它的後繼...

leetcode題庫 回文數

判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。輸入 121 輸出 true輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。輸入 10 輸出 false 解釋 從右向左讀,為 01 因此它不是乙個回文...