Discussion
Eduard Lebedyuk · Mar 4

Code Golf: Label Validation

New month, new code golf!

You will receive a string with a label code with numbers and letters.
Our challenge is to check if this code begins with 1, 2, or 3 and ends with A, B, C, S, or R.
It should return true(1) if so or return false(0) otherwise.
As usual shortest solution wins.

Input

"198739A79D9R"

Output

1

Note

Rules

  1. The signature of the contest entry MUST be:
Class codeGolf.LabelCode
{

ClassMethod Validate(s As %String) As %Boolean
{
}

}
  1. It is forbidden to modify class/signature, including but not limited to:
  • Adding inheritance
  • Setting default argument values
  • Adding class elements (Parameters, Methods, Includes, etc).
  1. It is forbidden to refer to non-system code from your entry. For example, this is not a valid entry:
ClassMethod Validate(s) As %Boolean 
{
  q ##class(myPackage.myClass).test(s)
}
  1. The use of $ZWPACK and $ZWBPACK is also discouraged.

My best attempt so far is 30 characters. What's yours?

6
1 210
Discussion (4)1
Log in or sign up to continue

size = 30

ClassMethod Validate(As %StringAs %Boolean
{
 "ABCRS"[$e(s,*)*123[$e(s)
}

That was about my idea too.

Clever trick getting rid of the parenthesis!

Ah, no. Won't work without parenthesis.

For example "0Z" would return true instead of false.

size = 31

ClassMethod Validate(As %StringAs %Boolean
{
 q $MATCH(s,"[1-3].*[A-CRS]")
}