正文
题目描述
解题思路
遍历字符串到倒数第二个字符的索引值处,使用索引值提取当前字符和后一个字符,计算它们的 ASCII 码差值的绝对值并求和即可。
方法1
class Solution:
def scoreOfString(self, s: str) -> int:
sum_ = 0
for i in range(len(s) - 1):
sum_ += abs(ord(s[i]) - ord(s[i + 1]))
return sum_
方法2
我们使用行内循环去掉对 sum_
赋初始值的过程。
class Solution:
def scoreOfString(self, s: str) -> int:
return sum(abs(ord(s[i]) - ord(s[i + 1])) for i in range(len(s) - 1))
该种方法的代码行数较少,但是对于新手可读性较差,本人推荐方法 1
中的写法。
方法3
class Solution:
def scoreOfString(self, s: str) -> int:
return sum([abs(ord(s[i]) - ord(s[i + 1])) for i in range(len(s) - 1)])
方法 3
中我们将 generic
对象变成了列表对象后再进行求和,两种方法均可。
如果大家觉得有用,就请点个赞吧~