As said by CamWalker below, in Go there is one (and only one) case out of the description, we're supposed to make uppercase a letter after a hyphen ("The Step-Daughter). I think this case should be merely removed, why have a special case in this language especially?
About Go translation:
Strongly suggest adding tests for non-ASCII strings. Otherwise you're teaching to work with Go strings in a wrong way.
Go strings implementation is "special": strings are byte arrays of UTF-8. Working with "character" indices of string directly, will lead to errors, if working with non-ASCII strings (as characters can be >1 byte). 90% of all solutions here will fail for non-ASCII strings.
Scala translation
In all languages, random tests almost never generate words with the same starting and ending letters
Node v12 should be enabled.
As said by CamWalker below, in Go there is one (and only one) case out of the description, we're supposed to make uppercase a letter after a hyphen ("The Step-Daughter). I think this case should be merely removed, why have a special case in this language especially?
Ruby 3.0 should be enabled, see this to learn how to do it
Ruby 3.0 should be enabled.
About Go translation:
Strongly suggest adding tests for non-ASCII strings. Otherwise you're teaching to work with Go strings in a wrong way.
Go strings implementation is "special": strings are byte arrays of UTF-8. Working with "character" indices of string directly, will lead to errors, if working with non-ASCII strings (as characters can be >1 byte). 90% of all solutions here will fail for non-ASCII strings.
Java translation kumited :)