当前位置:   article > 正文

【力扣-TS解题】1、回文数_ts 回文算法

ts 回文算法

给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false

回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

例如,121 是回文,而 123 不是

来源:力扣(LeetCode)

转为字符串

  1. 把数字转为字符串
  2. 反转整个字符串
  3. 对比两个字符串
function isPalindrome(x: number): boolean {
    if(x < 0 || (x % 10 === 0 && x !== 0)){
        return false;
    }
    const tmp:string = x.toString();
    let reverseStr = '';
    for (let i = tmp.length - 1; i >= 0; i--) {
        reverseStr += tmp[i];
    }
    return tmp === reverseStr;
}


const a = 123;
const b = 12321;

console.log(isPalindrome(a)); // false
console.log(isPalindrome(b)); // true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

不转为字符串

  1. 主要思路是对数字不断的进行取余运算(%10)
  2. 然后将原数字除以10(/10)
  3. 原数字<取余后的数字 截至

image.png

function isPalindrome(x: number): boolean {
  if (x < 0 || (x % 10 === 0 && x !== 0)) {
    return false;
  }

  let reverseNumber = 0;
    while (reverseNumber < x) {
        const a = x % 10;
        reverseNumber = reverseNumber * 10 + (x % 10);
        x = Math.floor(x/10)
    }
  return x === reverseNumber || x === Math.floor(reverseNumber / 10);
}

const a = 123;
const b = 12321;

console.log(isPalindrome(a)); // false
console.log(isPalindrome(b)); // true
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/617238
推荐阅读
相关标签
  

闽ICP备14008679号