整数反転アルゴリズムleetcodeの7前端

#整数反転アルゴリズムleetcodeの7前端

タイトル説明

32ビット符号付き整数を与え、あなたはそれぞれ逆に、この整数値を必要とします。

例1:

输入: 123
输出: 321

 例2:

输入: -123
输出: -321

例3:

输入: 120
输出: 21
注意:

我々は、32ビット符号付き整数、値範囲[-2 ^ 31、2 ^ 31 1 - ]格納することができる環境があると 整数オーバーフローの後、それは0を返し、逆ならば、この仮説によるとしてください。

7.整数逆転

概要

プロンプト

これは、オーバーフローことに留意すべきです2**31到-(2**31)

解決

再帰サイクル、ノートオーバーフロー条件

ソリューション

あなたはオーバーフローの問題を考慮していない場合は、それがこの質問のJSソリューションは、2つのピットを持っていると、最初のものは可変リフトである、(変な)非常に簡単です、整数は、乗算や除算などの操作を法と、得られる、浮動小数点数に変わりますその結果そこ0!=0の状況、我々はこれらの結果を使用する必要があるMath.floorか、~~彼らは以上で動作することができます前に、ラウンドピックに

アルゴリズム

/**
 * @param {number} x
 * @return {number}
 */
var reverse = function (x) {
  let ans = 0;
  while (x !== 0) {
    ans = ans * 10 + ~~(x % 10);
    x = ~~(x / 10);
  }
  return (ans >= (2 ** 31) || ans <= -(2 ** 31)) ? 0 : ans;
};

テストケースの着信業績

input:123
output:321

結果

执行用时 :80 ms, 在所有 javascript 提交中击败了94.48%的用户
内存消耗 :35.8 MB, 在所有 javascript 提交中击败了36.81%的用户

GitHubのリポジトリ

7.整数逆転

おすすめ

転載: www.cnblogs.com/moshuying/p/11903463.html