diff --git a/typescript/7-Reverse-Integer.ts b/typescript/7-Reverse-Integer.ts new file mode 100644 index 000000000..ed4c52489 --- /dev/null +++ b/typescript/7-Reverse-Integer.ts @@ -0,0 +1,23 @@ +const reverse = (x: number): number => { + const max: number = 2 ** 31 - 1; + const min: number = -(2 ** 31); + + let result: number = 0; + while (x !== 0) { + const digit = x % 10; + x = Math.trunc(x / 10); + + if (result > max / 10 || (result === max / 10 && digit >= max % 10)) { + return 0; + } else if ( + result < min / 10 || + (result === max / 10 && digit <= min % 10) + ) { + return 0; + } else { + result = result * 10 + digit; + } + } + + return result; + }; \ No newline at end of file