日期:2026年9月20日
LeetCode 題目連結:3498. Reverse Degree of a String
解題想法
簡單題,題目給一個字串 $s$,將 $s[i]$ 換算成 $26 - (s[i] - 'a')$,再乘以 $i+1$,將全部的值加起來並回傳,用一個 for 迴圈就解決了。
Python 程式碼
Runtime: 3 ms, beats 97.65%. Memory: 19.30 MB, beats 55.57%.
class Solution:
def reverseDegree(self, s: str) -> int:
ans = 0
for i, c in enumerate(s, start=1):
ans += (26 - ord(c) + ord('a')) * i
return ans
Runtime: 3 ms, beats 97.65%. Memory: 19.32 MB, beats 19.13%.
class Solution:
def reverseDegree(self, s: str) -> int:
return sum((26 - ord(c) + ord('a')) * i for i, c in enumerate(s, start=1))
C++ 程式碼
Runtime: 0 ms, beats 100.00%. Memory: 9.95 MB, beats 95.77%.
class Solution {
public:
int reverseDegree(string s) {
int n = (int)s.size(), ans = 0;
for(int i = 0; i < n; i++) {
ans += (26 - (s[i] - 'a')) * (i+1);
}
return ans;
}
};
C 語言程式碼
Runtime: 0 ms, beats 100.00%. Memory: 9.32 MB, beats 41.41%.
int reverseDegree(char* s) {
int n = strlen(s), ans = 0;
for(int i = 0; i < n; i++) {
ans += (26 - (s[i] - 'a')) * (i+1);
}
return ans;
}
沒有留言:
張貼留言