檢查是不是迴文數

迴文數: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
  }
}

其他方法還有待研究。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章