[🤔Code Kata] 2week-2
-DAY3-
<質問>
sは、複数の括弧からなるStringパラメータである.
true/false、sが有効かどうかを返してください.
「(」、「)」、「[」、「]」、「{」、「}」の6種類があります.次の場合に有効です.
かっこの順序は正しいです.
例:
方法
ああ...「{[()]}」「解決するか」()「{}[]」...
信じて託すミンチョルも時間がかかる問題だ...結局解決できなかった
実は私は似たような質問を書いたブロガーたちの答えを理解することに満足しています...呜呜呜呜...
rapsby.logというブロガーが書いた内容が私の考えている解題方法なので、引用して記録します.
1.stack、カッコ辞書を初期化します.
2.文字列内でテキストのカッコpushをナビゲートして開く
3.stackは空ではありません.stackの最後の要素が文字と同じ括弧のペアである場合は、続行します.
4.繰り返し文が終わり、スタックが空になり、Trueに戻ります.
def solution(s):
d = {
')' : '(',
'}' : '{',
']' : '['
}
stack = []
for c in s:
if c in '({[':
stack.append(c)
elif c in ')}]':
if stack:
top = stack.pop()
if d[c] != top:
return False
else:
return True
return len(stack) == 0
stackという新しいコンセプトが出てきました!!内容はまだ完全に理解されていませんが、コンセプトを整理しておきましょう~
Stack
stackは、リポジトリの上部にのみデータの挿入と削除が行われる羅列構造です.このような羅列構造を第1入出力と呼ぶ.
stackは、文字列を逆順序で出力したり、演算子接尾辞表ビット法(演算子を被演算子の後ろにマークする方法
AB+
)を用いたりするために使用される.<Stack実施>
Pythonはスタックをリストとしてロードします.スタックデータ構造を初期化すると、空のリストが作成されます.
stack = []
Stackに要素を入れる場合、appendメソッドを使用して上部に値を追加します.
stack = [1,2,3]
stack.push(4)
#stack = [1,2,3,4]
Stackから要素を削除すると、popメソッドを使用してリストの最後の要素が削除されます.
stack = [1,2,3]
top = stack.pop()
print(top)
#stack = [1,2]
Stackから要素を削除せず、インポート時のみ使用[1].
stack = [1,2,3]
top = stack[-1]
# top = 3
これは難題で、私はまだ分かりませんが、私はやはり一定の法則を掌握しました.Pythonに詳しい日...来るかな…?😞Reference
この問題について([🤔Code Kata] 2week-2), 我々は、より多くの情報をここで見つけました https://velog.io/@fhwmqkfl/Code-Kata-2week-2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol