算法题记录
2025年8月6日
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):
# print("---")
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
# print("diff",diff)
steps.append(step)
# print("step",step)
return steps
str1 = "ddhnayalcs"
str2 = "tffivyioexdqifmeadcz"
steps = fn(str1,str2,number_to_letter)
min(steps)