nest_paren¶
Given a string, return true if it is a nesting of zero or more pairs of parenthesis, like “(())” or “((()))”. Suggestion: check the first and last chars, and then recur on what’s inside them.
nest_paren("(())") -> true
nest_paren("((()))") -> true
nest_paren("(((x))") -> false
This exercise was taken from codingbat.com and has been adapted for the Python language. There are many great programming exercises there, but the majority are created for Java.
Starter Code¶
def nest_paren(string: str) -> bool:
pass
result = nest_paren('(())')
print(result)
Tests¶
from main import nest_paren
def test_nest_paren_1():
assert nest_paren('(())') == True
def test_nest_paren_2():
assert nest_paren('((()))') == True
def test_nest_paren_3():
assert nest_paren('(((x))') == False
def test_nest_paren_4():
assert nest_paren('((())') == False
def test_nest_paren_5():
assert nest_paren('((()()') == False
def test_nest_paren_6():
assert nest_paren('()') == True
def test_nest_paren_7():
assert nest_paren('') == True
def test_nest_paren_8():
assert nest_paren('(yy)') == False
def test_nest_paren_9():
assert nest_paren('(())') == True
def test_nest_paren_10():
assert nest_paren('(((y))') == False
def test_nest_paren_11():
assert nest_paren('((y)))') == False
def test_nest_paren_12():
assert nest_paren('((()))') == True
def test_nest_paren_13():
assert nest_paren('(())))') == False
def test_nest_paren_14():
assert nest_paren('((yy())))') == False
def test_nest_paren_15():
assert nest_paren('(((())))') == True