Skip to content

3498. Reverse Degree of a String

#323

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