-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmain.js
45 lines (36 loc) · 1.17 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
'use strict';
// https://leetcode.com/problems/reverse-integer/
/**
* @param {number} x
* @returns {number}
* @description Returns reversed integer
*/
var reverse = function (x) {
let temp = Math.abs(x);
let reversed = '';
while (temp > 0) {
reversed += (temp % 10);
temp = parseInt(temp / 10);
}
reversed = Number(reversed) * (x / Math.abs(x));
if (reversed > ((2 ** 31) - 1) || reversed < -(2 ** 31) || isNaN(reversed)) {
return 0;
}
return reversed;
};
// // Another way to solve the same problem using built-in methods in JS
// var reverse = function (x) {
// let tempNum = Math.abs(x).toString();
// let tempArr = Array.from(tempNum);
// let tempReversedArr = tempArr.reverse().join('');
// const reversed = Number(tempReversedArr) * (x / Math.abs(x));
// if (reversed > ((2 ** 31) - 1) || reversed < -(2 ** 31) || isNaN(reversed)) {
// return 0;
// }
// return reversed;
// }
// console.log(reverse(123)); // 321
// console.log(reverse(120)); // 21
// console.log(reverse(-123)); // -321
// console.log(reverse(-987142)); // -241789
// console.log(reverse(214748364)); // 463847412