タイトル説明:
「(」、「)」、「{」、「}」、「[」、「]」のみで構成される文字列を指定した場合、その文字列が有効かどうかを確認します。
有効な文字列は、次の条件を満たす必要があります。
開き括弧は同じ種類の閉じ括弧で閉じられる必要があります。
開き括弧は正しい順序で閉じる必要があります。
空の文字列は有効な文字列とみなされます。
例 1:
入力: "()"
出力: true
例 2:
入力: “()[]{}”
出力: true
例 3:
入力: "(]"
出力: false
例 4:
入力: 「([)]」
出力: false
例 5:
入力: “{[]}”
出力: true
問題解決のアイデア:
class Solution:
def isValid(self, s: str) -> bool:
output = []
label = {')':'(', '}':'{', ']':'['}
for idx in range(len(s)):
if s[idx] in ['(', '{', '[']:
output.append(s[idx])
elif s[idx] in [')', '}', ']'] and len(output) == 0:
return False
elif s[idx] in [')', '}', ']'] and label[s[idx]] == output[-1]:
output.pop()
else:
return False
if len(output) != 0:
return False
else:
return True
パフォーマンス分析: