圧縮(Programmers 17684)
🧑💻 あっしゅく
辞書は、すべての長さ1の単語
例えば
この過程を経て,5文字の文章KAKAOは4つのインデックス番号[11,1,27,15]に圧縮された.
入力フォーマット
入力として、英語の大文字のみからなる文字列msgが与えられる.msgの長さは1文字以上,1000文字以下である.
出力フォーマット
指定した文字列を圧縮したインデックス番号を配列として出力します.
I/O例
msganswerKAKAO[11, 1, 27, 15]TOBEORNOTTOBEORTOBEORNOT[20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34]ABABABABABABABAB[1, 2, 27, 29, 28, 31, 30]
🧑💻 解決策
🧑💻 コード#コード#
def solution(msg):
answer = []
dic_al = {
'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6,
'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12,
'M': 13, 'N': 14, 'O': 15, 'P': 16, 'Q': 17, 'R': 18,
'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24,
'Y': 25, 'Z': 26
}
dic_size = 26
buffer = ""
for al in msg:
test = buffer + al
if test in list(dic_al.keys()):
buffer = test
else:
answer.append(dic_al[buffer])
dic_size += 1
dic_al[test] = dic_size
buffer = al
if buffer:
answer.append(dic_al[buffer])
return answer
🧑💻 総評
Reference
この問題について(圧縮(Programmers 17684)), 我々は、より多くの情報をここで見つけました https://velog.io/@moonpiderman/압축-Programmers-17684テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol