An interesting application of maps (or transforms?) or something.
I think it’s always interesting when a question motivates some precomputed data. In this case we want to encode, well, the alphabet. Other examples are various bit-manipulation stuff, or Roman numeral stuff, and probably many more. Otherwise we’re doing a pretty straightforward mapping. A “normal” for loop this time.
def alphabet_position(text):
# This can all be computed statically,
# compute it dynamically for now
alphabet = "abcdefghijklmnopqrstuvwxyz"
alphabetPositions = {}
for i in range(len(alphabet)):
alphabetPositions[alphabet[i]] = str(i+1)
result = []
for s in text:
s = s.lower()
if s in alphabetPositions:
result.append(alphabetPositions[s])
return " ".join(result)
No real interesting notes for this one, I’m afraid. A few little bits of trickiness with types (see the str on line 7), off-by-ones (also on line 7), and some comfort with joins and other tricks. Oh, and lower().
I suppose it’s a nice exercise on building and using a map. Yes, I like that, that’s true. Overall I’d say it’s a string-related question, and other string questions can be found here.