[プログラマー]スープ
任意の問題の解釈
tupleを表す文字列が与えられます.
この文字列は、形、中に要素が入っています.
各小{}の元素サイズは異なり、i個の寸法の小{}は元のtupleの1~i個目の元素を有する.
{}はsetで、中の要素の順序は逆さまにすることができます.
アイデア
小さいものから大きいものまで、元の図面に追加する要素を選択すればいいです.
おしゃべり
最初は本当に問題を理解していませんでした.
{{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}}
ガトゥフ(2,1,3,4)を表すのが理解できないからです.
問題は、アセンブリが要素の順序に影響されないことです.
やっと聞き取れた.
もともとc++で問題を解きたかったのですが小さいsetを取得する過程でsplit関数が必要なのでPythonと書きました...忘れてしまいました.見つけるのに長い時間がかかりました.
コード#コード#
def solution(s):
answer = []
vec = [[] for i in range(501)]
for i in range(1, len(s)):
if s[i] == '{':
t = ""
for j in range(i+1, len(s)):
if(s[j] =='}'):
t = s[i+1:j]#뒤에 인덱스는 미포
i = j
break;
t = t.split(',')
vec[len(t)] = t
d = {}# dictionary
for i in range(1,501):
for j in range(len(vec[i])):
if(vec[i][j] not in d):
d[vec[i][j]] = 0
answer.append(int(vec[i][j]))
return answer
使用するPythonスキル
c++でinner for文からouter for文を移動する反復器が好きです.しかしPythonで同じ変数名が使えるかどうかはわかりません.
jという新しい反復器を導入し,break時にi=jに更新した.
string split
s[i+1:j]#後のインデックスが不完全
リスト内の要素数の指定
vec = [[] for i in range(501)]
Reference
この問題について([プログラマー]スープ), 我々は、より多くの情報をここで見つけました https://velog.io/@coding3392/프로그래머스-튜플テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol