1. int 整数を String に変換し、オーバーフロー キャプチャを行う
class Solution { public int reverse(int x) { long nums = 0; int temp = 1; try { temp = x / Math.abs(x); StringBuilder num = new StringBuilder(); num.append(Math.abs(x)); nums = Long.parseLong(num.reverse().toString()); if(nums > Math.pow(2, 31) - 1) { return 0; } } catch (Exception e) { // TODO: handle exception return 0; } return (int)nums*temp; } }
String 変換は効率が低く、より多くのライブラリ関数を使用します。
(推奨される学習ビデオ チュートリアル: java ビデオ チュートリアル)
2. 剰余メソッド
class Solution { public int reverse(int x) { int ans = 0; while(x != 0) { // 判断溢出 if((ans * 10) / 10 != ans) { ans = 0; break; } // ans*10 没有溢出 ans = ans * 10 + x % 10; x /= 10; } return ans; } }
(ans * 10) / 10 うち ans * 10 では、Java 仮想マシンは実際に内部で数値型の昇格を実行します。つまり、オーバーフローした場合、long 型データを一時的に保存し、最終的にナロー変換によって下位 32 桁の値を保持して (ans * 10) / 10 ! を取得します。 = 答え。したがって、32 ビット整数のみを格納するという条件は満たされません。
おすすめの関連記事とチュートリアル: Java 入門チュートリアル
以上がJava は整数の反転を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。