列表

详情


100270. 字符串的分数

给你一个字符串 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 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int scoreOfString(string s) { } };

golang 解法, 执行用时: 0 ms, 内存消耗: 2.1 MB, 提交时间: 2024-04-15 00:18:33

func scoreOfString(s string) (ans int) {
	for i := 1; i < len(s); i++ {
		ans += abs(int(s[i-1]) - int(s[i]))
	}
	return
}

func abs(x int) int { if x < 0 { return -x }; return x }

cpp 解法, 执行用时: 0 ms, 内存消耗: 7.7 MB, 提交时间: 2024-04-15 00:18:18

class Solution {
public:
    int scoreOfString(string s) {
        int ans = 0;
        for (int i = 1; i < s.length(); i++) {
            ans += abs(s[i] - s[i - 1]);
        }
        return ans;
    }
};

java 解法, 执行用时: 1 ms, 内存消耗: 41.1 MB, 提交时间: 2024-04-15 00:18:04

class Solution {
    public int scoreOfString(String S) {
        char[] s = S.toCharArray();
        int ans = 0;
        for (int i = 1; i < s.length; i++) {
            ans += Math.abs(s[i] - s[i - 1]);
        }
        return ans;
    }
}

python3 解法, 执行用时: 43 ms, 内存消耗: 16.3 MB, 提交时间: 2024-04-15 00:17:50

class Solution:
    def scoreOfString(self, s: str) -> int:
        return sum(abs(x - y) for x, y in pairwise(map(ord, s)))

python3 解法, 执行用时: 32 ms, 内存消耗: 16.2 MB, 提交时间: 2024-04-15 00:17:27

class Solution:
    def scoreOfString(self, s: str) -> int:
        t = [ord(i) for i in s]
        ans = 0
        for i in range(1, len(s)):
            ans += abs(t[i] - t[i-1])
        return ans

上一题