July 27, 2021
def solution(msg):
dic = {chr(ord('A') + i): i + 1 for i in range(26)}
answer = []
while msg:
idx = 0
# 현재 입력과 일치하는 가장 긴 문자열 찾기
while msg[:idx + 1] in dic and idx <= len(msg):
idx += 1
key = msg[:idx]
if key in dic:
answer.append(dic[key])
new_key = msg[:idx + 1]
dic[new_key] = len(dic) + 1
msg = msg[idx:]
return answer
print(solution("TOBEORNOTTOBEORTOBEORNOT"))
print(solution("ABABABABABABABAB"))