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,
- M{0,3} especifica la sección de miles y básicamente la restringe entre 0 y 4000
- (CM|CD|D?C{0,3}) es para la sección de las centenas.
- (XC|XL|L?X{0,3}) es para el lugar de las decenas.
- Finalmente, (IX|IV|V?I{0,3}) es la sección de unidades.
- M{0,3} especifica la sección de miles y básicamente la restringe entre 0 y 4000
- 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)
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