js回文数の4つの判断方法の例


前言
一つの整数が回文数かどうかを判断します。回文数とは、正の順序(左から右へ)と倒順(右から左へ)が同じ整数です。
たとえば:
121は、回文数です。
1221は、回文数です。
1234は、回文数ではありません。
-121も、回文数ではありません。
いくつかの特殊な状況:
  • -9の数字はすべて回文と呼ぶことができます。
  • は0に等しくなくて、端数は0の数字で、すべて回文ではありません。
  • 負数は全部回文ではありません。
  • 1.文字列の変換
    1.1簡単点、高次関数を使用して完成します。
    考え方:まず数字を文字列Aに変えて、配列を変えて、配列を反転させて、配列を文字列Bに変えて3段階操作した後、文字列AとBを比較して、結論を出します。
    
    /**
     * @param {number} x
     * @return {boolean}
     */
    var isPalindrome = function(x) {
      if ( x < 0 ) return false
      let str = '' + x
      return Array.from(str).reverse().join('') === str
    };
    1.2後から前へ循環する文字列配列
    考え方:数字を文字列Aに変換して、後から前へ循環する文字列Aから、循環してくる文字を新しい文字列Bにつづり合わせて、文字列AとBを比較して、結論を出します。
    
    /**
     * @param {number} x
     * @return {boolean}
     */
    var isPalindrome = function(x) {
      let str = x + ''
      let newStr = ''
      for(let len = str.length, i = len - 1; i >= 0 ; i--) {
        newStr += str[i]
      }}
      return newStr === str
    };
    1.3中間数をノードとして、左右の端が等しいかどうかを判断する
    
    /**
     *        ,            
     * @param {number} x
     * @return {boolean}
     */
    var isPalindrome = function(x) {
      if ( x < 0 || (x !== 0 && x % 10 === 0)) {
        return false
      } else if ( 0 <= x && x < 10) {
        return true
      }
      x = '' + x
      for(let i = 0 ; i < x.length/2; i++) {
        if (x[i] !== x[x.length - i - 1]) {
          return false
        }
      }
      return true
    };
    2.デジタル変換
    2.1型の端数を求め、10を除いて整数を得る
    考え方:特殊な状況を先に判断します。「0より小さい、端数が0より小さい、10より小さい正の整数」。その後、整数を反転し、前後の2つの整数が等しいかどうかを反転して、リターン整数かを判断します。
    ここの反転:整数の求数を端数にして、その後は一回の型を求めるごとに、元の数に一つ(*10で得られます)を追加します。これで反転の数が得られます。
    計算には型を求める回数が必要です。整数を10を除いて、型を求める回数を計算します。Math.flor()は、与えられた数の最大整数以下を返します。
    
    /**
     *      , 10   
     * @param {number} x
     * @return {boolean}
     */
    var isPalindrome = function(x) {
      if ( x < 0 || (x !== 0 && x % 10 === 0)) {
        return false
      } else if ( 0 <= x && x < 10) {
        return true
      }
      let y = x
      let num = 0
      while(x !== 0) {
        num = x % 10 + num * 10
        x = Math.floor(x / 10)
      }
      return y === num
    };
    以上は回文数の判断方法です。他の方法があれば、補充できます。
    締め括りをつける
    以上はこの文章の全部の内容です。本文の内容は皆さんの学習や仕事に対して一定の参考学習価値を持ってほしいです。ありがとうございます。