23. 字符串的内部距离
天津科技大学第六届科技文化节算法设计大赛第23题
题目:
两个字母之间的距离定义为它们在字母表中位置的距离。
例如A 和C 的距离为2,L 和Q 的距离为5。
对于一个字符串,我们称字符串中两两字符之间的距离之和为字符串的内部距离。
例如:ZOO 的内部距离为22,其中Z 和O 的距离为11。
请问,WATJKJDXRGZNXYTW 的内部距离是多少?
解题思路:
这里我们要用到ascll码和字符的相互转换函数
首先将字符串转换成列表形式,再两两遍历字母,通过ord(char)获得该字母的ascll码,两字母ascll码差值的绝对值则为其距离,循环往复将距离求和即求出答案
源代码
stra='LANQIAO'
strb='WATJKJDXRGZNXYTW'
stra=list(stra)
strb=list(strb)
print(stra,strb)
def instance(strx):
strx = list(strx)
sum=0
for i in range(len(strx)):
for j in range(i):
sum=sum+abs(ord(strx[i])-ord(strx[j]))
print(sum)
return sum
print(instance(strb))
结果
1132