1、判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。
示例 1:
輸入: 121
輸出: true
示例 2:
輸入: -121
輸出: false
解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是乙個回文數。
方法1:轉化為字串
/**
* 判斷乙個數字是否是回文數:轉化為字串,通過雙指標
* @param x
* @return
*/public
boolean
ispalindrome
(int x)
else
}return
true
;}
/**
* 通過stringbuilder翻轉乙個字串,然後判斷與之前的字串是否相同
* @param x
* @return
*/public
boolean
ispalindrome2
(int x)
方法2:取模、除法運算
/**
* 判斷乙個數字是否是回文數:取模、除法運算獲得翻轉後的數字,然後比較與傳入的數字是否相同
* @param x
* @return
*/public
boolean
ispalindrome3
(int x)
int oldnum = x;
//翻轉後的數字
int num =0;
while
(x !=0)
num = newnum;
x = x/10;
}return num == oldnum;
}
方法3:利用棧:先進後出
/**
* 判斷乙個數字是否是回文數:利用棧
* @param x
* @return
*/public
boolean
ispalindrome4
(int x)
stack
stack =
newstack
(); string s = x+"";
for(
int i =
0; ilength()
;i++
) stringbuilder sb =
newstringbuilder()
;while
(stack.
size()
>0)
string s2 = sb.
tostring()
;return s2.
equals
(s);
}
LeetCode 9 回文數(簡單)
點此去做 題幹 判斷乙個整數是否是回文數。回文數是指正序和倒序都是一樣的整數。你能不將數字轉化為字串做嗎?輸入 121 121 10輸出 true false false執行用時 28ms,11.5mb 思想 最開始想要借用整數翻轉的 先將整數翻轉後再做相等比較,結果發現用例中有會造成溢位的大數,不...
陣列 Leetcode9回文數
leetcode9 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 輸入 121 輸出 true 思路1 先變成字串然後對比 class solution return true 思路2 數字對比 class solution while num 0 r...
LeetCode 9 回文數(簡單)
判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。輸入 121 輸出 true 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。輸入 10 輸出 false 解釋 從右向左讀,為 01 因此它不是乙個回...