leetcode7.整数の反転
32ビットの符号付き整数を指定し、整数の数値を反転します.
例1:
例2:
例3:
注意:
我々の環境では32ビットの符号付き整数しか記憶できないと仮定し,その数値範囲は[−231,231−1]である.この仮定によれば,反転後の整数がオーバーフローすると0を返す.
考え方:Stringに変換reverse()関数で逆を取り、完了したらintに変換すればよい.
問題:負数は直接変換できません.{負数->絶対値、反転した絶対値->負数}が必要です.
例1:
:123
:321
例2:
:-123
:-321
例3:
:120
:21
注意:
我々の環境では32ビットの符号付き整数しか記憶できないと仮定し,その数値範囲は[−231,231−1]である.この仮定によれば,反転後の整数がオーバーフローすると0を返す.
考え方:Stringに変換reverse()関数で逆を取り、完了したらintに変換すればよい.
問題:負数は直接変換できません.{負数->絶対値、反転した絶対値->負数}が必要です.
class Solution {
public int reverse(int x) {
// ( )
String z = "2147483647";
// ( )
String c = "2147483648";
//
if(x>0)
{
String y;
// String
y = String.valueOf(x);
//
y =new StringBuffer(y).reverse().toString();
//
if(y.length()>=z.length()&&y.compareTo(z)>0)
return 0;
// , int
x = Integer.valueOf(y).intValue();
return x;
}
else{
x = -x;
String y;
// String
y = String.valueOf(x);
//
y =new StringBuffer(y).reverse().toString();
//
if(y.length()>=c.length()&&y.compareTo(c)>0)
return 0;
// , int,
x = Integer.valueOf(y).intValue();
return -x;
}
}
}