私は括弧ie {} []()のユーザー入力を受け取り、それらがペア(開閉)を持っているかどうかを確認するプログラムを書いています。私は私のコードを実行する際にエラーに遭遇しています。私は常に戻り値をfalseにします。私は事前に設定された "リスト"をチェックするさまざまな方法を試しましたが、うまくいかないようです。私は上記のクラスを使用する必要があります。どんな助けもありがとう。Pythonはユーザー入力からの括弧を比較し、ペアがあることを確認します
いくつかの例の入力は、次のとおりです。
>>>parenthesesMatch('{[]}')
True
>>>parenthesesMatch('({})')
True
>>>parenthesesMatch('{[)]}')
False
マイコード:
#George flamburis
class Stack():
def __init__(self,que=[]):
self.lst = que
def __repr__(self):
return "Stack({})".format(self.lst)
def push(self, add):
self.lst.append(add)
def pop(self):
return self.lst.pop()
def isEmpty(self):
return self.lst==[]
def first(self, loc=0): #naming of this method can't be []
return self.lst[loc]
def len(self):
return len(self.lst)
def parenthesesMatch(match):
s = Stack()
end = []
for char in match:
if char in "[ { (":
s.push(char)
else:
end.append(char)
if s.len()==len(end):
for num in range(len(end)):
if s.first(num) and end[num] not in '[]' or '{}' or'()':
return False
return True
elif s.len()!=len(end):
return False
ご質問はありますか? あなたのコードはPython 2.7で動作していません。かっこのマッチ(マッチ)には自分がいませんか? –