https://www.acmicpc.net/problem/15829
저는 알파벳값을 문자열에 넣어서 해당 인덱스값을 이용하여 풀었습니다.
알파벳 앞에 무의미한 0을 추가해 올바른 인덱스값을 사용할 수 있도록 조정하였습니다.(a = 1, b = 2, ...)
입력 받은 문자열을 순회하여 해당 알파벳의 인덱스 값을 찾아내(hsh.index(line[i]))
31의 승만큼 곱하여 해시값을 구했습니다.
마지막으로 M의 값으로 나누어 몫을 구해주면 됩니다.
import sys
input = sys.stdin.readline
hsh = '0abcdefghijklmnopqrstuvwxyz'
l = int(input())
line = input().rstrip()
res = 0
for i in range(l):
res += hsh.index(line[i]) * (31 ** i)
print(res%1234567891)