Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123
Output: 321
Example 2:
Input: -123
Output: -321
Example 3:
Input: 120
Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1].
For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
反转一个int类型数。
方法1:x%10,x/=10
方法2:反转字符
肯定是方法1快点,但是我就是想写慢的....
1 public class Solution { 2 public int Reverse(int x) { 3 if (x == 0) 4 return 0; 5 if (x == -2147483648) 6 return 0; 7 bool isNega = false; 8 if (x < 0) 9 isNega = true; 10 x = isNega ? -x : x; 11 string tmpStr = x.ToString(); 12 int length = tmpStr.Length; 13 string resultStr = string.Empty; 14 for (int i = 0; i < length / 2; i++) 15 resultStr += tmpStr[length - 1 - i]; 16 if (length % 2 == 1) 17 resultStr += tmpStr[length / 2]; 18 for (int i = 0; i < length / 2; i++) 19 resultStr += tmpStr[length / 2 - 1 - i]; 20 long result = Convert.ToInt64(resultStr); 21 if (isNega) 22 result = -result; 23 if (result < int.MinValue || result > int.MaxValue) 24 return 0; 25 return (int)result; 26 } 27 }