whatsapp sharing button Contacto youtube sharing button Canal instagram sharing button Contacto facebook sharing button Contacto email sharing button Contacto

Entero a romano

LeetCode Español
Java | Python | PHP | C++ | JavaScript

En este blog, te enseñaré cómo resolver el ejercicio Entero a romano de la plataforma LeetCode en Java, Python, PHP, C++ y JavaScript en español.

En esta guía, aprenderás a:

✅ Una explicación del problema
✅ Una solución eficiente
✅ Implementaciones en Java, Python, PHP, C++ y JavaScript

Este ejercicio se encuentra en la plataforma de LeetCode como "Integer to Roman".

                       

Problema

Dado un número dado, hay que convertirlo a su representación romana. integer-to-roman-leetcode-espanol

Pasos para realizar el algoritmo:

1.- Se declaran cuatro arrays de strings que contienen los símbolos romanos: ✅ listadoUnidad: Los números del 1 al 9. ✅ listadoDecena: Los números del 10 al 90. ✅ listadoCentena: Los números 100 al 900. ✅ listadoMillar: Los números del 1000 al 3000. 2.- Se descomponen los números individuales de num usando el módulo (%) y la división entera (/). Esto se hace para diferenciar las unidades, decenas, centenas y millares. 3.- Luego, se utilizan esos valores como índices para acceder a los símbolos romanos correspondientes en cada lista. 4.- Se retorna una cadena de texto que concatena los símbolos romanos obtenidos en el paso anterior, en el siguiente orden: millares, centenas, decenas y unidades.

Presentación




Código en Java

class Solution {
    public String intToRoman(int num) {
        //Paso #1
        String listadoUnidad[]      = {"","I","II","III","IV","V","VI","VII","VIII","IX"};
        String listadoDecena[]      = {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"};
        String listadoCentena[]     = {"","C","CC","CCC","CD","D","DC","DCC","DCCC","CM"};
        String listadoMillar[]      = {"","M","MM","MMM"};

        //Paso #2
        int millar   =  num/1000;
        int centena  =  (num%1000)/100;
        int decena   =  (num%100)/10;
        int unidad   =  num%10;
       
        //Pao #3
        String millarRomana   = listadoMillar[millar];
        String centenaRomana  = listadoCentena[centena];
        String decenaRomana   = listadoDecena[decena];
        String unidadRomana   = listadoUnidad[unidad];
        
        //Paso #4
        return millarRomana + centenaRomana + decenaRomana + unidadRomana;
    }
}



Código en PHP

class Solution {
    /**
     * @param Integer $num
     * @return String
     */
     function intToRoman($num) {
        //Paso #1
        $listadoUnidad = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
        $listadoDecena = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"];
        $listadoCentena = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"];
        $listadoMillar = ["", "M", "MM", "MMM"];

        //Paso #2
        $millar = $num / 1000;
        $centena = ($num % 1000) / 100;
        $decena = ($num % 100) / 10;
        $unidad = $num % 10;

        //Paso #3
        $millarRomana = $listadoMillar[$millar];
        $centenaRomana = $listadoCentena[$centena];
        $decenaRomana = $listadoDecena[$decena];
        $unidadRomana = $listadoUnidad[$unidad];

        //Paso #4
        return $millarRomana . $centenaRomana . $decenaRomana . $unidadRomana;
  }
}



Código en Python

class Solution(object):
    def intToRoman(self, num):
        # Paso #1: Listas de valores romanos
        listado_unidad = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"]
        listado_decena = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"]
        listado_centena = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"]
        listado_millar = ["", "M", "MM", "MMM"]

        # Paso #2: Obtener las unidades, decenas, centenas y millares
        millar = num // 1000
        centena = (num % 1000) // 100
        decena = (num % 100) // 10
        unidad = num % 10

        # Paso #3: Convertir cada unidad a su valor romano
        millar_romano = listado_millar[millar]
        centena_romano = listado_centena[centena]
        decena_romano = listado_decena[decena]
        unidad_romano = listado_unidad[unidad]

        # Paso #4: Concatenar las unidades para formar el número romano
        return millar_romano + centena_romano + decena_romano + unidad_romano



Código en C++

class Solution {
        public:
        string intToRoman(int num) {
        // Paso #1
        string listadoUnidad[] = {"", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"};
        string listadoDecena[] = {"", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"};
        string listadoCentena[] = {"", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"};
        string listadoMillar[] = {"", "M", "MM", "MMM"};
        // Paso #2
        int millar = num / 1000;
        int centena = (num % 1000) / 100;
        int decena = (num % 100) / 10;
        int unidad = num % 10;
        // Paso #3
        string millarRomana = listadoMillar[millar];
        string centenaRomana = listadoCentena[centena];
        string decenaRomana = listadoDecena[decena];
        string unidadRomana = listadoUnidad[unidad];
        // Paso #4
        return millarRomana + centenaRomana + decenaRomana + unidadRomana;
    }
};



Código en JavaScript

/**
    * @param {number} num
    * @return {string}
    */
   var intToRoman = function(num) {
       // Paso #1
       const listadoUnidad = ["", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"];
       const listadoDecena = ["", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC"];
       const listadoCentena = ["", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM"];
       const listadoMillar = ["", "M", "MM", "MMM"];
   
       // Paso #2
       const millar  = Math.floor(num / 1000);
       const centena = Math.floor((num % 1000) / 100);
       const decena  = Math.floor((num % 100) / 10);
       const unidad  = num % 10;
   
       // Paso #3
       const millarRomana = listadoMillar[millar];
       const centenaRomana = listadoCentena[centena];
       const decenaRomana = listadoDecena[decena];
       const unidadRomana = listadoUnidad[unidad];
   
       // Paso #4
       return millarRomana + centenaRomana + decenaRomana + unidadRomana;
   
   };
        
    

Conclusión

En este blog, hemos visto cómo realizar el ejercicio Integer to Roman en Java, Python, PHP, C++ y JavaScript. Hemos visto ejemplos de código en cada lenguaje de programación.
Foto de perfil

Autor: Hermes Sanchez
Fecha: 13 mar 2024

Artículos Relacionados