Write a function that checks the braces status in a string, and return `True` if all braces are properly closed, or `False` otherwise. Available types of brackets: `()`, `[]`, `{}`.

**Please note, you need to write this function without using regex!**

## Examples
```python
'([[some](){text}here]...)'  =>  True
'{([])}'                     =>  True
'()[]{}()'                   =>  True
'(...[]...{(..())}[abc]())'  =>  True
'1239(df){'                  =>  False
'[()])'                      =>  False
')12[x]34('                  =>  False
```
Don't forget to rate this kata! Thanks :)

Difficulty: introductory

Starter code:

def braces_status(s):
	

Solutions:
brackets = {"}":"{","]":"[",")":"("}

def braces_status(s):
    stack = []
    
    for c in s:
        if c in "[({":
            stack.append(c)
        elif c in "])}":
            if not stack or stack.pop() != brackets[c]:
                return False
    
    return not stack

def braces_status(string):
    s = "".join([b for b in string if b in '(){}[]'])
    while any(b in s for b in ['()','{}','[]']):
        s = s.replace('()','').replace('{}','').replace('[]','')
    return True if len(s) == 0 else False

parens = dict([')(', '][', '}{'])
opens = set(parens.values())

def braces_status(s):
    stack = []
    for c in s:
        if c in opens:
            stack.append(c)
        elif c in parens:
            if not (stack and stack.pop() == parens[c]):
                return False
    return not stack

def braces_status(string):
    stack = []
    corresp = {')':'(', '}':'{', ']':'['}
    for c in (s for s in string if s in "()[]{}"):
        if c in '([{': 
            stack.append(c)
        elif not stack or stack.pop() != corresp[c]:
            return False
    return not stack

def braces_status(s):
    paren = {')': '(', ']': '[', '}': '{'}
    opened = []
    for c in s:
        if c in paren.values():
            opened.append(ord(c))
        elif c in paren:
            if not opened or opened.pop() != ord(paren[c]):
                return False
    return not opened

def braces_status(string):
    s = "".join(list(filter(lambda ch: ch in "{[()]}",list(string))))
    while '{}' in s or '()' in s or '[]' in s:
        s=s.replace('{}','')
        s=s.replace('[]','')
        s=s.replace('()','')
    return s==''

def braces_status(string):
    if "(]" in string or "(}" in string or "[)" in string or "[}" in string or "{)" in string or "{]" in string or string.count("(")!= string.count(")") or string.count("[")!= string.count("]") or string.count("{")!= string.count("}"):
        return False
    else:
        return True

def braces_status(s):
    matching = {"}":"{","]":"[",")":"("}
    stack = []
    for c in s:
        if c in "[({":
            stack.append(c)
        elif c in matching and (not stack or stack.pop() != matching[c]):
            return False
    return not stack

def braces_status(s):
    l = []
    d = {'(': ')', '{': '}', '[': ']'}
    for x in s:
        if x in '({[':
            l.append(d[x])
        elif x in ')}]':
            if not l or not x == l.pop():
                return 0
    return not l

def braces_status(s):
    order = ["X"]
    for i in s:
        if i in "({[" : order.append(")}]"["({[".index(i)])
        elif i in ")}]":
            if order.pop()!=i : return 0
    return len(order)==1