逆整数


今日、私は逆整数leetcodeコーディング挑戦を歩いています.

指示
32ビット符号付き整数、整数の逆数値を与えます.
注意:
32ビット符号付き整数範囲内に整数を格納できる環境を扱うと仮定します.−231、231− 1)この問題のために、あなたの関数が逆整数があふれるとき、0を返すと仮定してください.

概要
const reverseInteger = num => {
     // CODE GOES HERE
}

例1
Input: x = -4253
Output: -3524

例2
Input: x = 721
Output: 127

遊びましょう
ステップ1
最初に評価した2つの指数表現がありました.1 -(- 2 ^ 31 )と2 -( 2 ^ 31 - 1 )私はこれらの指数式を扱うために数学モジュールを使いました.
let startPoint = Math.pow(-2, 31)
let endPoint = (Math.pow(-2, 31) - 1)
ステップ2
渡された数をtoString ()メソッドを使ってスティングに変換しました.
let numToString = num.toString()
ステップ3
ストリングを分割して、それを逆にして、それを一緒に戻してください.
let numSplitReversedJoined = numToString.split('').reverse().join('') 
ステップ4
文字列の先頭にハイフンがある場合は、文字列を分割し、シフトメソッドを使用してハイフンを削除して返します.そうでなければ、我々は何もしない.
let hyphen = numToString.includes('-') ? numToString.split('').shift() : null
ステップ5
ハイフンがあるならば、NUMTOStringにそれを連結して、それから数に戻って解析してください
let numValueWithHyphen = parseInt(hyphen + (numSplitReversedJoined))
let numValueWOHyphen = parseInt(numSplitReversedJoined)
ステップ6
ハイフンがあるか、それなしで番号を返します.
let numValue = hyphen !== null ? numValueWithHyphen : numValueWOHyphen
ステップ7
最後に、反転された数が最初に定義されたstartpointとendpointの範囲内にあるかどうかを調べます.範囲外であれば0を返し、そうでなければ番号を返します.
if (numValue <= startPoint || numValue >= endPoint || numValue === 0) {
     return 0
}
return xValue

一緒に
const reverseInteger = num => {
     let startPoint = Math.pow(-2, 31)
     let endPoint = (Math.pow(-2, 31) - 1)

     let numToString = num.toString()
     let numSplitReversedJoined = numToString.split('').reverse().join('') 

     let hyphen = numToString.includes('-') ? numToString.split('').shift() : null

     let numValueWithHyphen = parseInt(hyphen + (numSplitReversedJoined))
     let numValueWOHyphen = parseInt(numSplitReversedJoined)

     let numValue = hyphen !== null ? numValueWithHyphen : numValueWOHyphen
     if (numValue <= startPoint || numValue >= endPoint || numValue === 0) {
          return 0
     }
     return numValue
}
そして、そこにはそれがある.