Programming Languages war Python, PHP, Javascript (Nodejs) Reverse Integer

Hey my friends, a new post about this war. I don't know which is better, but I'll try to figure it out. I hope y'all enjoy this series. Here we go!

This is a challenge of leetcode.com I made this challenge with Python3, and next I made PHP and Javascript the same way.

Problem:

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

Example 1:

Input: x = 123 Output: 321

I'm going to explain in each language, so, here we go!

Python

I turn from integer to string the number, the string to the dictionary, I had to validate if the number is negative.

Next I reverse the dictionary with the method "reverse", and I use the method "join" to turn the dictionary to string and I add the symbol plus the new string.

I turn the string to integer.

And the end, I validate if the number is an integer of 32 bits yet and return that.

class Solution:
  def reverse(self, x: int):
    x = str(x)
    y = ''
    symbol = ''
    xdict = []
    for xx in x:
      if xx != '-':
        xdict.append(xx)
      else:
        symbol = xx
    xdict.reverse()
    xdict = ''.join(xdict)
    y = symbol + xdict
    y = int(y)
    if y > 2 ** 31 - 1 or y < -2 ** 31:
      y = 0
    return y


sol = Solution()
result = sol.reverse(123)
print(result)

PHP

I turn from integer to string the number, the string to the array, I had to validate if the number is negative.

Next I reverse the array with the method "array_reverse", and I use the method "implode" to turn the array to string and I add the symbol plus the new string.

I turn the string to integer.

And the end, I validate if the number is an integer of 32 bits yet and return that.

<?php
class Solution
{
    public function reverse($x)
    {
        $x      = (string) $x;
        $x      = str_split($x);
        $y      = '';
        $symbol = '';
        $xarray = [];
        foreach ($x as $xx) {
            if ($xx != '-') {
                $xarray[] = $xx;
            } else {
                $symbol = $xx;
            }
        }
        $xarray = array_reverse($xarray);
        $xarray = implode($xarray);
        $y      = $symbol . $xarray;
        $y      = (integer) $y;
        if ($y > 2 ** 31 - 1 || $y < -2 ** 31) {
            $y = 0;
        }
        return $y;
    }
}

$sol    = new Solution();
$result = $sol->reverse(1534236469);
var_dump($result);
?>

Javascript

I turn from integer to string the number, the string to the array, I had to validate if the number is negative.

Next I reverse the array with the method "reverse", and I use the method "join" to turn the array to string and I add the symbol plus the new string.

I turn the string to integer.

And the end, I validate if the number is an integer of 32 bits yet and return that.

class Solution {
  reverse(x) {
    x = x.toString();
    let y = '';
    let symbol = '';
    let xarray = [];
    for (let i = 0; i < x.length; i++) {
      if (x[i] !== '-') {
        xarray.push(x[i]);
      } else {
        symbol = x[i];
      }
    }
    xarray.reverse();
    xarray = xarray.join('');
    y = symbol + xarray;
    y = parseInt(y);
    if (y > 2 ** 31 - 1 || y < (-2) ** 31) {
      y = 0;
    }
    return y;
  }
}

const sol = new Solution();
const result = sol.reverse(123);
console.log(result);

Conclusion

  • Structure: Each language has a little difference.
  • Lines: Python: 23, PHP: 32, Javascript: 27
  • Time to execution: Python: 32 ms, PHP: 8 ms, Javascript: 104 ms
  • Memory Usage: Python: 14.1 MB, PHP: 15.5 MB, Javascript: 40.2 MB

Would you like that I write more challenges? What do you like more about challenges?

I hope you enjoy my post and remember that I am just a Dev like you!

No Comments Yet