Image Credits: CarfromJapan

To solve the reversed integer and reversed string algorithms, we would need to refer to some of the Logic we used in Part 1 of this series, click here to see the post.
I’d be dealing with the more complex algorithm which is reversing an integer before solving reversing a string, in fact, if you can reverse an integer you should have no problem reversing a string.

Question 1.

Write a function to reverse an Integer

As seen in our previous article, reverse an integer follows pretty much a very similar logic.
The first thing I’d do is to convert the number to a string by calling the inbuilt JavaScript .toString() in-built method.

let myNumber = 23

const myChar = myNumber.toString()

// OUTPUT = "23"


When we call this method, we would notice the output returns a value in quotes, this means our value has been converted from a number to a string.

Next, we would call the following methods .split('') (this turns the string into an array, .reverse()(this would reverse the array), .join('') (this would convert the reversed array back to a string.

let myNumber = 23

let myChar = myNumber.toString().split('').reverse().join('')

console.log(myChar)
// returns 32

console.log(typeof(myChar))
// returns string


So we have successfully reversed the number but the output is still a string and not a number, meaning we cannot perform mathematical operations on our result. To change this back to a number, we would simply wrap this into the JavaScript parseInt() method.

const myNewNumber = parseInt(myChar);

console.log(myNewNumber);
// returns 32

console.log(typeof(myNewNumber))
// returns number


Handling edge Cases

If you clone this repository, install the dependencies and run yarn run rev-int you’d notice at least one test failing with our current implementation. And that is the reversal of negative numbers.

let myNumber = -23

let myChar = myNumber.toString().split('').reverse().join('')

const myNewNumber = parseInt(myChar);

console.log(myNewNumber);
// returns 32


So our current implementation is not capturing for negative numbers, we would want the reversal of -23 to return -32 for us.
One fix for this would be to multiply our results by negative 1 if the number is less than 0.

const reversedInt = (n) =>{
const reversed = n.toString().split('').reverse().join('');
if(n < 0){
return parseInt(reversed) * -1;
}
return parseInt(reversed);
}


Question 2

Write a function to reverse a string

We just need to call 3 in-built methods to get this done.

const reverseStr = str => {
const arr = str.split('').reverse().join('');
return arr;
}


Do not forget to clone this repository and try to solve some of these algorithm problem using your own method making sure they pass all the test cases.

Repository: https://github.com/seunzone/js-algorithms