I did some coding issues and came across something that I am not very familiar with. I am more curious to know what it is and why it is.
On the command line, it's pretty simple: Given a 32-bit signed integer, reverse digits of an integer.
Example: Input: -123 Output: -321 Example: Input: 120 Output: 21 Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
I came up with this.
var reverse = function(x) { var isNegative = false; if(x < 0){ isNegative = true; x *= -1; }; var reverseX = parseInt(String(x).split('').reverse((a,b) => a - b).join('')); if(reverseX > Math.pow(2,32)){ return 0; } if(isNegative){ return -1 * reverseX } else { return reverseX; } };
However, I came across some unsuccessful tests:
Input: 1563847412 Output: 2147483651 Expected: 0
As far as I understand, a 32-bit integer is 2 ^ 32. What is its value in JS and what happens if I start moving? ( 2^32 + 1 )
My second question is, if I can ask two, โI expectedโ if the reverseX value exceeds 2 ^ 32, but it still does not pass the test.
if(reverseX > Math.pow(2,32)){ return 0; }
How can I appropriately return 0 when I exceeded the 32-bit integer?
source share