syuntoku14の進捗

進捗を書きなぐります

AOJでPythonに慣れる(1問目)

問題
The Balance of the World

所感

pythonの文字列操作に慣れた
・replaceのおかげで楽に書けた気がする
pythonよく分からん

解法
・文字列から括弧だけ抜き出して新しい括弧のみの文字列を作る
・左括弧と右括弧の個数が等しいか調べる
・一番内側の括弧については、右括弧の直前に必ず左括弧があるので、調べる。あったら文字列から削除する
・文字列の長さが0になったら終わり

コード

def makeBlackets(strings):
    blackets=[]
    for i in range(len(strings)):
        char=strings[i]
        if char=='[' or char=='(' or char==']' or char==')':
            blackets.append(char)
    return blackets

def isBalancedNum(blackets):
    lB=0
    rB=0
    for i in range(len(blackets)):
        if blackets[i]==')' or blackets[i]==']':
            lB+=1
        else:
            rB+=1
    return lB==rB

def isBalanced(blackets):
    while len(blackets)!=0:
        if "()" in blackets:
            blackets=blackets.replace("()","")
        elif "[]" in blackets:    
            blackets=blackets.replace("[]","")
        else:
            break
    return len(blackets)==0

while True:
    strings=input()
    if strings==".":
        break
    blacket=makeBlackets(strings)
    blackets=''.join(blacket)
    if isBalancedNum(blackets):
        if isBalanced(blackets):
            print("yes")
        else:
            print("no")
    else:
        print("no")