1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| number_to_letter = {chr(96 + i): i for i in range(1, 27)} def fn(str1,str2,number_to_letter): steps = [] length = len(str1) for i in range(len(str2[:length])+1): step = 0 str2_ = str2[i:i+length] if length > len(str2_): break print(str1,str2_) for i in range(len(str1)): left = str1[i] right = str2_[i] diff = abs(number_to_letter[left] - number_to_letter[right]) if diff >= 13: diff = 26-diff step+=diff steps.append(step) return steps
str1 = "ddhnayalcs" str2 = "tffivyioexdqifmeadcz" steps = fn(str1,str2,number_to_letter) min(steps)
|