给你一个字符串
s
。一个字符串的 分数 定义为相邻字符 ASCII 码差值绝对值的和。请你返回
s
的 分数 。示例 1:
输入:s = "hello"
输出:13
解释:
s
中字符的 ASCII 码分别为:'h' = 104
,'e' = 101
,'l' = 108
,'o' = 111
。所以s
的分数为|104 - 101| + |101 - 108| + |108 - 108| + |108 - 111| = 3 + 7 + 0 + 3 = 13
。示例 2:
输入:s = "zaz"
输出:50
解释:
s
中字符的 ASCII 码分别为:'z' = 122
,'a' = 97
。所以s
的分数为|122 - 97| + |97 - 122| = 25 + 25 = 50
。提示:
2 <= s.length <= 100
s
只包含小写英文字母。
双指针
5min
public int scoreOfString(String s) {
int fastPointer = 1;
int slowPointer = 0;
int result = 0;
while(fastPointer!=s.length()){
int current = Integer.valueOf(s.charAt(fastPointer)) - Integer.valueOf(s.charAt(slowPointer));
result += current < 0 ? -current : current ;
fastPointer++;
slowPointer++;
}
return result;
}
作者:TimothySumemr
链接:https://leetcode.cn/problems/score-of-a-string/solutions/2966387/3110-zi-fu-chuan-de-fen-shu-san-mu-yun-s-bp43/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。