迴文數:1234321,12344321,一位的數
不是迴文數:1234673234,不爲0且0結尾的數,負數
方法一:通過內置函數判斷,需要判斷奇數位和偶數位的中間位置
function checkPalindrome (data) {
let midPos, firstHalf, secondHalf
data = data + ''
if(data.length == 1) {
// 只有一位的是迴文數
return true
}
if(typeof(data) == 'number') {
if(data < 0) {
// 負數不是迴文數
return false
}
}
if(data.indexOf(0) == data.length - 1) {
// 不等於0且0結尾的不是迴文數
return false
}
if(data.length % 2 == 0) {
// 偶數位數
midPos = data.length / 2
firstHalf = data.slice(0, midPos).split('')
} else {
// 奇數位數
midPos = (data.length - 1) / 2
firstHalf = data.slice(0, midPos + 1).split('')
}
secondHalf = data.slice(midPos, data.length).split('')
if(firstHalf.reverse().join('') == secondHalf.join('')) {
return true
} else {
return false
}
}
方法二:倒序遍歷字符串
function checkHuiWen(count) {
count += ''
let newStr = ''
for(let i = count.length - 1; i >= 0; i--) {
newStr += count[i]
}
if(newStr == count) {
return true
} else {
return false
}
}
其他方法還有待研究。。。。。。