回文數判斷

2022-06-12 16:09:08 字數 1182 閱讀 5847

乙個經典的問題,判斷某個整數是否為回文數。

問題很簡單,練手題。

遞迴表示,如果某個字元與其回文字元不同,則不是回文數;如果相同,則繼續判斷其子串是否為回文數:

public

final

boolean ispalindrome(int

x)

if(x<10)

string str=string.valueof(x);

int length=str.length();

int mid=length/2-1;

return compare(0,length,mid,str);

}public

final

boolean compare(int i,int length,int

mid,string source)

if(source.charat(i)!=source.charat(length-i-1))

return compare(i+1,length,mid,source);

}

遞推表示:

public

final

boolean ispalindrome(int

x)

if(x<10)

string str=string.valueof(x);

int length=str.length();

int i=0;

while(i

i++;

}return

true

; }

擴充套件,不轉化為字串是否可完成回文的檢測。

答案是當然可以,但是沒什麼必要,先看實現:

public

final

boolean ispalindrome(int

x)

return

true

; }

兩次遍歷,效率並不如轉化為字串快,但使用的額外記憶體更少。

判斷回文數

如果乙個數的反向倒置數和它的順向數一樣,那麼這個數稱為回文數。編寫乙個測試程式,提示使用者輸入乙個整數值,然後報告這個數是不是回文數。我先後一共寫了三個函式。方法一 由於題目要求輸入的是整數值,所以按照整數的方法倒置數字,與原數比較即可。public class palindrom public s...

判斷回文數

回文 是指正讀反讀都能讀通的句子,它是古今中外都有的一種修辭方式和文字遊戲,如 我為人人,人人為我 等。在數學中也有這樣一類數字有這樣的特徵,成為回文數 palindrome number 設n是一任意自然數。若將n的各位數字反向排列所得自然數n1與n相等,則稱n為一回文數。例如,若n 123432...

回文數判斷

leetcode上關於回文數的解法 出現的問題 error signed integer overflow 846384741 10 cannot be represented in type int solution.cpp 在進行回文數練習時,使用的如下解法 bool ispalindrome ...