Validating Roman Numerals in Python - HackerRank Solution
Problem :
You are given a string, and you have to validate whether it's a valid Roman
numeral. If it is valid, print True. Otherwise, print False. Try to create a
regular expression for a valid Roman numeral.
Input Format :
A single line of input containing a string of Roman characters.
Output Format :
Output a single line containing True or False according to the instructions
above.
Constraints :
The number will be between 1 and 3999(both included).
Sample Input :
CDXXI
Sample Output :
True
References :
Regular expressions are a key concept in any programming language. A quick explanation with Python examples is available here. You could also go through the link below to read more about regular expressions in Python.https://developers.google.com/edu/python/regular-expressions
Solution :
1 2 3 4 5 6 7 8 9 10 11 12 13 | # Validating Roman Numerals in Python - Hacker Rank Solution # Python 3 # Validating Roman Numerals in Python - Hacker Rank Solution START thousand = 'M{0,3}' hundred = '(C[MD]|D?C{0,3})' ten = '(X[CL]|L?X{0,3})' digit = '(I[VX]|V?I{0,3})' regex_pattern = r"%s%s%s%s$" % (thousand, hundred, ten, digit) # Do not delete 'r'. # Validating Roman Numerals in Python - Hacker Rank Solution END import re print(str(bool(re.match(regex_pattern, input())))) |
Disclaimer :-
the above hole problem statement is given by hackerrank.com but the solution is generated by the codeworld19 authority if any of the query regarding this post or website fill the following contact form thank you.
thousand = 'M{0,3}'
hundred = '(C[MD]|D?C{0,3})'
ten = '(X[CL]|L?X{0,3})'
digit = '(I[VX]|V?I{0,3})'
regex_pattern = r"M{0,3}(C[MD]|D?C{0,3})(X[CL]|L?X{0,3})(I[VX]|V?I{0,3})$" # Do not delete 'r'.
import re
print(str(bool(re.match(regex_pattern, input()))))