LintCode python小白-簡単な問題-423有効な括弧のシーケンス
3020 ワード
タイトル:文字列が表すカッコシーケンスを指定し、次の文字を含む:'(',')'{','}','['and'],有効なカッコシーケンスであるか否かを判定する.
サンプル:カッコは「()」の順に表示する必要があります.「()[]{}」は有効なカッコですが、「([)]は無効なカッコです.
考え方:まず辞書を定義し、左かっこを辞書のキーとし、右かっこを値とし、ペアの根拠とする.それから文字列を循環して、左かっこを得て、リストの中(スタック)に入れて、もし右かっこを得たら、まずリストに左かっこがあるかどうかを判断して、もしあるならば、更に辞書の中のスタックの上の要素がキーの値と一致して、判断の結果、最後に最後のスタックにまだ要素があるかどうかを判断して、代表に残って左かっこが一致していないならば、間違います.コード:
サンプル:カッコは「()」の順に表示する必要があります.「()[]{}」は有効なカッコですが、「([)]は無効なカッコです.
考え方:まず辞書を定義し、左かっこを辞書のキーとし、右かっこを値とし、ペアの根拠とする.それから文字列を循環して、左かっこを得て、リストの中(スタック)に入れて、もし右かっこを得たら、まずリストに左かっこがあるかどうかを判断して、もしあるならば、更に辞書の中のスタックの上の要素がキーの値と一致して、判断の結果、最後に最後のスタックにまだ要素があるかどうかを判断して、代表に残って左かっこが一致していないならば、間違います.コード:
class Solution:
# @param {string} s A string
# @return {boolean} whether the string is a valid parentheses
def isValidParentheses(self, s):
# Write your code here
if len(s)<=1:
return False
a=list(s)
b=[] #
c={'(':')','[':']','{':'}'} #
for i in a:
if i in c: # , ,
b.append(i)
else:
if len(b)==0: #
return False
else:
# ==
if c.get(b[-1])!=i:
return False
else:
del b[-1] #
if len(b)!=0: # , ,
return False
return True