Problem Link
https://leetcode.com/problems/reverse-degree-of-a-string/
Problem Summary
각 문자의 뒤집은 알파벳 순번과 1부터 센 위치를 곱해서 전부 더하는 문제.
Solution
그냥 한 번 죽 돌면서 곱해서 더해주면 된다.
파이썬은 char 타입이 없어서 C++처럼 c - 'a'를 못 쓴다. ord(c) - ord('a')로 코드포인트를 빼줘야 한다. 뒤집은 알파벳 순번은 거기서 26 - (ord(c) - ord('a')). 위치가 1부터라 i+1이고, enumerate로 인덱스랑 문자를 같이 꺼냈다.
시간복잡도는 O(n).
Source Code
class Solution:
def reverseDegree(self, s: str) -> int:
ans = 0
for i, c in enumerate(s):
ans += (i+1) * (26 - (ord(c)-ord('a')))
return ans