decoding a string

🏠

Can't remember the exact name of this problem, but essentially involves counting the number of different ways a string of numbers representing letters of the alphabet can be interpreted.

 1S = "26157"
 2data = {'ways':-1}
 3
 4def count_number_of_ways(s):
 5    data['ways'] += 1
 6    if len(s) >= 2:
 7        count_number_of_ways(s[1:])
 8    if len(s) >= 2 and int(s[0:2]) <= 26:
 9        count_number_of_ways(s[2:])
10    return data['ways']
11
12ways = count_number_of_ways(S)
13print(ways)

Output:

 12 --> 6157
 26 --> 157
 31 --> 57
 45 --> 7
 515 --> 7
 626 --> 157
 71 --> 57
 85 --> 7
 915 --> 7
109