i trying reverse integer there condition. if integer not fit in 32 bit signed integer value function should return 0. handling case program raises exception. why ?
public class solution { public int reverse(int a) { string s = integer.tostring(a); stringbuilder sb = new stringbuilder(s); if(s.charat(0) == '-') sb.deletecharat(0); string n = sb.reverse().tostring(); int n = 0 -integer.parseint(n); if(n >= -2147483648 && n <= 2147483647) return n; return 0; } } what wrong above code.
try:
public int reverse(int a) { boolean negative = < 0; string s = integer.tostring(a); stringbuilder sb = negative ? new stringbuilder(s.substring(1)) : new stringbuilder(s); long reversed = long.parselong(sb.reverse().tostring()); reversed = negative ? 0l - reversed : reversed; if(reversed < min_value || reversed > max_value) { return 0; } return long.valueof(reversed).intvalue(); }
Comments
Post a Comment