My son’s been kinda obsessed, recently, with what words can be spelled using element abbreviations. I suggested writing a program that could check whether any given string could be spelled, and then had to immediately try it myself because I wasn’t sure, at first, how to do it. The main trick is in handling the possibility that using a one-letter element abbreviation where a two-letter element abbreviation is also possible could make an otherwise possible word look impossible (frog, for example).

I was able to come up with a solution using recursion that was pretty fun. Click “result” in the CodePen below if you want to see the code in action.