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: EASY
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