diff --git a/7-reverse-integer/7-reverse-integer.cs b/7-reverse-integer/7-reverse-integer.cs new file mode 100644 index 0000000..86181be --- /dev/null +++ b/7-reverse-integer/7-reverse-integer.cs @@ -0,0 +1,24 @@ +public class Solution { + const int INT_MAX = 2147483647; + public int ReverseHelper(int x, int reversed) { + if (reversed > (int) (INT_MAX / 10)) { + return 0; + } + + if (x < 10) { + return reversed * 10 + x; + } + + return ReverseHelper(x / 10, reversed * 10 + x % 10); + } + + public int Reverse(int x) { + if (x == - INT_MAX - 1) { + return 0; + } + else if (x < 0) { + return -1 * ReverseHelper(Math.Abs(x), 0); + } + return ReverseHelper(Math.Abs(x), 0); + } +} \ No newline at end of file