Validación de números romanos usando expresiones regulares

Dada una string , y debe validar si la string dada es un número romano válido o no. Si es válido, escriba Verdadero, de lo contrario, Falso.
Nota : Los números se encuentran entre 1 y 3999.
Ejemplos: 
 

Input: String = IX  
Output: True 

Input: String = 54IVC 
Output: False

Los números romanos se basan en los siguientes símbolos. 
 

SYMBOL       VALUE
I             1
IV            4
V             5
IX            9
X             10
XL            40
L             50
XC            90
C             100
CD            400
D             500
CM            900 
M             1000       

Un número en números romanos es una string de estos símbolos escritos en orden descendente (por ejemplo, la M primero, seguida de la D, etc.). Sin embargo, en algunos casos específicos, para evitar que cuatro caracteres se repitan en sucesión (como IIII o XXXX), la notación sustractiva se usa a menudo de la siguiente manera: 
 

  • Coloqué antes de V o X indica uno menos, entonces cuatro es IV (uno menos que 5) y 9 es IX (uno menos que 10).
  • X colocado antes de L o C indica diez menos, por lo que cuarenta es XL (10 menos que 50) y 90 es XC (diez menos que cien).
  • C colocada antes de D o M indica cien menos, por lo que cuatrocientos es CD (cien menos que quinientos) y novecientos es CM (cien menos que mil).

Acercarse: 

  • La expresión regular para verificar si una string es un número romano válido o no es esta: 
 ^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$
  • En el cual, 
    1. M{0,3} especifica la sección de miles y básicamente la restringe entre 0 y 4000 
       
    2. (CM|CD|D?C{0,3}) es para la sección de las centenas. 
       
    3. (XC|XL|L?X{0,3}) es para el lugar de las decenas. 
       
    4. Finalmente, (IX|IV|V?I{0,3}) es la sección de unidades. 
       
  • Importe la expresión regular y busque la string de entrada en la expresión si la string existe, devuelva Verdadero, de lo contrario, devuelva Falso 
     

A continuación se muestra la implementación del enfoque anterior.

Python3

# Python3 program to Validate the Roman numeral
 
# Function to Validate the Roman numeral
def ValidationOfRomanNumerals(string):
     
    # Importing regular expression
    import re
     
    # Searching the input string in expression and
    # returning the boolean value
    print(bool(re.search(r"^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$",string)))
 
# Driver code
 
# Given string
string="XI"
 
# Function call
ValidationOfRomanNumerals(string)
Producción: 

True

 

Publicación traducida automáticamente

Artículo escrito por virusbuddha y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *