LeetCode Online Judge 题目C# 练习 - Reverse Integer

Reverse digits of an integer.
Example1: x = 123, return 321
Example2: x = -123, return -321
Discuss: 1.If the integer's last digit is 0, what should the output be? ie, cases such as 10, 100.
      2.Reversed integer overflow.

 1         public static int ReverseInteger(int x)
 2         {
 3             bool is_neg = x < 0;
 4             int absx = Math.Abs(x);
 5             int ret = 0;
 6 
 7 
 8             while (absx > 0)
 9             {
10                 ret = ret * 10 + (absx % 10);
11                 absx /= 10;
12             }
13 
14             if (is_neg)
15                 ret *= -1;
16 
17             return ret;
18         }

代码分析:

  题目已经说了要跟面试官讨论一下两个问题,10, 100 应该返回什么,我觉得肯定是返回 1 的。 如果整数反转后overflow怎么办,这个能提出来应该能展示你的细心。上面的代码没有处理这种情况的,默认反转后不会overflow的。

 

posted @ 2012-10-12 22:05  ETCOW  阅读(470)  评论(0编辑  收藏  举报