Skip to content

Instantly share code, notes, and snippets.

@teukon
Last active December 3, 2018 15:12
Show Gist options
  • Save teukon/16b6de379907bb2a3aa4 to your computer and use it in GitHub Desktop.
Save teukon/16b6de379907bb2a3aa4 to your computer and use it in GitHub Desktop.
Regex Golf - Unofficial Bonus Levels

Regex Golf - Unofficial Bonus Levels

  1. Subtraction Quantify with care.
  2. Typist With apologies to Dr. Dvorak.
  3. Addition Beauty in symmetry.
  4. Anyway Old MacDonald had a farm...
  5. Tic-tac-toe Don't forget the horizontals.
  6. Modulus Lookahead smithwork.
  7. Matryoshka Pay attention to detail.
  8. Euclid Greed is good.
  9. Latin squares No mathematics; just logic and reasoning.
  10. Dominoes Caution! Rabbit holes.

Each problem has a robust solution (can be done "without cheating"), unlike "A man, a plan", "Glob", and "Balance" from the original set. In each case, the pattern should be unambiguous. A solution to a problem is considered robust if it conforms to this pattern for any string matching the problem's domain regex:

Level Domain regex
Subtraction ^x+ - x+ = x+$
Typist ^[a-z]+$
Addition ^x+ \+ x+ = x+ \+ x+$
Anyway ^[a-z]+$
Tic-tac-toe ^[\.OX]{3} [\.OX]{3} [\.OX]{3}$
Modulus ^x+ % x+ = x+$
Matryoshka ^([a-z]+ )*[a-z]+$
Euclid ^gcd\(x+, x+\) = x+$
Latin squares ^[a-z]{4} [a-z]{4} [a-z]{4} [a-z]{4}$
Dominoes ^([0-6]{2} )*[0-6]{2}$

Please refrain from posting solutions here until the thread is well underway (20+ posts). Questions, total scores, and gentle hints are ok.


A warm thank you to Davidebyzero for helping me refine each of these problems, and for coming up with some brilliant solutions. Our testing and development notes can be found here and here (caution: spoilers).

@teukon
Copy link
Author

teukon commented Feb 25, 2014

Welcome! :)

Yes, the difficulty in this one is more to do with pinning down the precise pattern than in building the regex or in compressing it. Focus on the "on" and "sad" lines in particular.

Good luck!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment