0%

Palindrome Number - LeetCode

題目連結

9. Palindrome Number

題目描述

輸入一個整數 x ,如果回傳的迴文與原先的 x 值相同輸出 true ,反之則輸出 false。
註:迴文指由左念到右或由右念到左都相同的詞句。

範例

1
2
3
4
<範例一>
輸入:x = 121
輸出:true
解釋:121 從左到右和從右到左讀作121。
1
2
3
4
<範例二>
輸入:x = -121
輸出:false
解釋:從左到右是-121。從右到左變成121-,因此它不是迴文。
1
2
3
4
<範例三>
輸入:x = 10
輸出:false
解釋:從左到右是10。從右到左變成0,因此它不是迴文。

運用知識點

知識點 使用說明
toString() 轉換成字串
String.prototype.split() 切割字串成字串陣列
Array.prototype.reverse() 反轉陣列中的值
Array.prototype.join() 將陣列合併連接成字串
相等比較 相等比較運算

解題流程

使用範例二作為解題範例。

step1:使用數字轉字串 toString 方法將 x 轉成字串以利於後面使用陣列方法。

1
2
3
var isPalindrome = function (x) {
console.log(x.toString());//-121
};

step2:使用字串分割方法 split ,將原字串分割成字串陣列。

1
2
3
var isPalindrome = function (x) {
console.log(x.toString().split(""));//["-","1","2","1"]
};

step3:使用陣列反轉 reverse 反轉陣列。

1
2
3
var isPalindrome = function (x) {
console.log(x.toString().split("").reverse());//["1","2","1","-"]
};

step4:使用陣列合併字串方法 join ,將字串陣列連接。

1
2
3
var isPalindrome = function (x) {
console.log(x.toString().split("").reverse().join(""));//"121-"
};

step5:使用比較運算子 === (嚴格相等)比較字串反轉前後是否相同,值相同回傳 true ,反之則回傳 false。

1
2
3
4
var isPalindrome = function (x) {
return x.toString() === x.toString().split("").reverse().join("");
};
console.log(isPalindrome(-121)); //false

Codepen