🔗 🟢 3110. Score of a String 1152

tags: Biweekly Contest 128 模擬(Simulation) 字串(String)

題意

給定一個字串 ss。一個字串的 分數 定義為相鄰字元ASCII值絕對差的總和。

請返回字串 ss 的分數。

思路:模擬(Simulation)

直接按照題意模擬,計算相鄰字元ASCII值的絕對差的總和即可。

Python 中可以使用 pairwise 來取得相鄰元素,並使用 map(ord, s) 將字串中的所有字元轉換為 ASCII 值。

複雜度分析

  • 時間複雜度:O(n)\mathcal{O}(n)
  • 空間複雜度:O(1)\mathcal{O}(1)
1
2
3
4
5
6
7
8
class Solution:
def scoreOfString(self, s: str) -> int:
# return sum(abs(x - y) for x, y in pairwise(map(ord, s)))
n = len(s)
ans = 0
for i in range(1, n):
ans += abs(ord(s[i]) - ord(s[i - 1]))
return ans
1
2
3
4
5
6
7
8
9
class Solution {
public:
int scoreOfString(string s) {
int n = s.size(), ans = 0;
for (int i = 1; i < n; i++)
ans += abs(s[i] - s[i - 1]);
return ans;
}
};

寫在最後

Cover photo is generated by @たろたろ, thanks for their work!