逆整数
3260 ワード
今日、私は逆整数leetcodeコーディング挑戦を歩いています.
指示
32ビット符号付き整数、整数の逆数値を与えます.
注意:
32ビット符号付き整数範囲内に整数を格納できる環境を扱うと仮定します.−231、231− 1)この問題のために、あなたの関数が逆整数があふれるとき、0を返すと仮定してください.
概要
例1
例2
遊びましょう
ステップ1
最初に評価した2つの指数表現がありました.1 -(- 2 ^ 31 )と2 -( 2 ^ 31 - 1 )私はこれらの指数式を扱うために数学モジュールを使いました.
渡された数をtoString ()メソッドを使ってスティングに変換しました.
ストリングを分割して、それを逆にして、それを一緒に戻してください.
文字列の先頭にハイフンがある場合は、文字列を分割し、シフトメソッドを使用してハイフンを削除して返します.そうでなければ、我々は何もしない.
ハイフンがあるならば、NUMTOStringにそれを連結して、それから数に戻って解析してください
ハイフンがあるか、それなしで番号を返します.
最後に、反転された数が最初に定義されたstartpointとendpointの範囲内にあるかどうかを調べます.範囲外であれば0を返し、そうでなければ番号を返します.
一緒に
指示
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
}
そして、そこにはそれがある.Reference
この問題について(逆整数), 我々は、より多くの情報をここで見つけました https://dev.to/greedybrain/leetcode-reverse-integer-4n58テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol