Users
Search
Help
Sign Up
Sign In
Communities
Writing
Codidact Meta
The Great Outdoors
Photography & Video
Scientific Speculation
Cooking
Electrical Engineering
Judaism
Languages & Linguistics
Software Development
Mathematics
Christianity
Code Golf
Music
Physics
Linux Systems
Power Users
Tabletop RPGs
Community Proposals
tag:snake
search within a tag
answers:0
unanswered questions
user:xxxx
search by author id
score:0.5
posts with 0.5+ score
"snake oil"
exact phrase
votes:4
posts with 4+ votes
created:<1w
created < 1 week ago
post_type:xxxx
type of post
Search help
Notifications
Mark all as read
See all your notifications »
Users
Search
Help
Dashboard
Sign In
Sign Up
Challenges
Q&A
Sandbox
Meta
Review Suggested Edit
You can't approve or reject suggested edits because you haven't yet earned the
Edit Posts
ability.
Return to post
Pending.
This suggested edit is pending review.
Suggested edit summary:
67 / 255
# [Python](https://python.org)
(
344 bytes
)
**534 bytes**:
This is _not_ golfed in any way. But it's the current winner!
``` python
def validate_roman_numeral(candidate):
invalid_strings = ["CCCC", "CCD", "CCM", "CDC", "CMC", "CMD", "CMM", "DCD", "DCM", "DD", "DM", "IC", "ID", "IIII", "IIV", "IIX", "IL", "IM", "IVI", "IXC", "IXI", "IXL", "IXV", "IXX", "LC", "LD", "LL", "LM", "LXC", "LXL", "MMMM", "VC", "VD", "VIV", "VIX", "VL", "VM", "VV", "VX", "XCC", "XCD", "XCL", "XCM", "XCX", "XD", "XLX", "XM", "XXC", "XXL", "XXXX"]
for invalid_string in invalid_strings:
if invalid_string in candidate:
return invalid_string
return "VALID"
```
**379 bytes**:
Here's a minimal effort golf of the above:
``` python
def v(c):
i=['DD','DM','IC','ID','IL','IM','LC','LD','LL','LM','VC','VD','VL','VM','VV','VX','XD','XM','CCD','CCM','CDC','CMC','CMD','CMM','DCD','DCM','IIV','IIX','IVI','IXC','IXI','IXL','IXV','IXX','LXC','LXL','VIV','VIX','XCC','XCD','XCL','XCM','XCX','XLX','XXC','XXL','CCCC','IIII','MMMM','XXXX']
for s in i:
if s in c:
return s
return "VALID"
```
**344 bytes**:
A little more effort:
``` python
def v(c):
o="VALID"
for s in 'DD','DM','IC','ID','IL','IM','LC','LD','LL','LM','VC','VD','VL','VM','VV','VX','XD','XM','CCD','CCM','CDC','CMC','CMD','CMM','DCD','DCM','IIV','IIX','IVI','IXC','IXI','IXL','IXV','IXX','LXC','LXL','VIV','VIX','XCC','XCD','XCL','XCM','XCX','XLX','XXC','XXL','C'*4,'I'*4,'M'*4,'X'*4:
if s in c:
o=s
return o
```
# [Python](https://python.org)
,
344 bytes
**534 bytes**:
This is _not_ golfed in any way. But it's the current winner!
``` python
def validate_roman_numeral(candidate):
invalid_strings = ["CCCC", "CCD", "CCM", "CDC", "CMC", "CMD", "CMM", "DCD", "DCM", "DD", "DM", "IC", "ID", "IIII", "IIV", "IIX", "IL", "IM", "IVI", "IXC", "IXI", "IXL", "IXV", "IXX", "LC", "LD", "LL", "LM", "LXC", "LXL", "MMMM", "VC", "VD", "VIV", "VIX", "VL", "VM", "VV", "VX", "XCC", "XCD", "XCL", "XCM", "XCX", "XD", "XLX", "XM", "XXC", "XXL", "XXXX"]
for invalid_string in invalid_strings:
if invalid_string in candidate:
return invalid_string
return "VALID"
```
**379 bytes**:
Here's a minimal effort golf of the above:
``` python
def v(c):
i=['DD','DM','IC','ID','IL','IM','LC','LD','LL','LM','VC','VD','VL','VM','VV','VX','XD','XM','CCD','CCM','CDC','CMC','CMD','CMM','DCD','DCM','IIV','IIX','IVI','IXC','IXI','IXL','IXV','IXX','LXC','LXL','VIV','VIX','XCC','XCD','XCL','XCM','XCX','XLX','XXC','XXL','CCCC','IIII','MMMM','XXXX']
for s in i:
if s in c:
return s
return "VALID"
```
**344 bytes**:
A little more effort:
``` python
def v(c):
o="VALID"
for s in 'DD','DM','IC','ID','IL','IM','LC','LD','LL','LM','VC','VD','VL','VM','VV','VX','XD','XM','CCD','CCM','CDC','CMC','CMD','CMM','DCD','DCM','IIV','IIX','IVI','IXC','IXI','IXL','IXV','IXX','LXC','LXL','VIV','VIX','XCC','XCD','XCL','XCM','XCX','XLX','XXC','XXL','C'*4,'I'*4,'M'*4,'X'*4:
if s in c:
o=s
return o
```
Suggested
13 days ago
by
trichoplax