(inspired by this post over on Puzzling. CAUTION: SPOILERS FOR THAT PUZZLE ARE BELOW.)
The standard telephone keypad correlates letters to numbers as follows:
1 ->
2 -> ABC
3 -> DEF
4 -> GHI
5 -> JKL
6 -> MNO
7 -> PQRS
8 -> TUV
9 -> WXYZ
0 ->
A given input word is defined to be an Ordered Word if, when translated to keypad presses using the above, the resulting number is either non-decreasing or non-increasing. In other words, the resultant number cannot both increase and decrease.
For example, the word CAT
translates to 228
, which is non-decreasing, and thus an Ordered Word. However, the word DOG
is 364
, which both increases and decreases, and thus is not an Ordered Word.
The challenge
Given a word, output whether or not it's Ordered.
Input
- A word (not necessarily a dictionary word) consisting of ASCII alphabet (
[A-Z]
or[a-z]
) letters only, in any suitable format. - Your choice if the input is all uppercase or all lowercase, but it must be consistent.
- The word will be at least 3 characters in length.
Output
A consistent truthy/falsey value for whether the input word is Ordered (truthy) or not Ordered (falsey).
Rules
- Either a full program or a function are acceptable. If a function, you can return the output rather than printing it.
- If possible, please include a link to an online testing environment so other people can try out your code!
- Standard loopholes are forbidden.
- This is code-golf so all usual golfing rules apply, and the shortest code (in bytes) wins.
Examples
Here are some Ordered Words (i.e., truthy), and there are more on the linked Puzzling puzzle.
CAT
TAC
AAA
DEMONS
SKID
LKJONMSRQP
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Here are some non-Ordered Words (i.e., falsey)
DOG
GOD
ROSE
COFFEE
JKLMNOGHI
abc->t9
and this challenge is checking monotonicity? \$\endgroup\$abc->t9
. \$\endgroup\$AAA
\$\endgroup\$