
import unittest
class Solution:
def isvalid(self, s:str) -> bool:
matching_brackets = {
")": "(",
"]": "[",
"}": "{",
}
stack: list[str] = []
for bracket in s:
if bracket in "([{":
stack.append(bracket)
continue
if bracket not in matching_brackets:
return False
if not stack or stack[-1] != matching_brackets[bracket]:
return False
stack.pop()
return not stack
class SolutionTest:
def __init__(self):
self.Solution = Solution()
def run(self):
test_cases = [
("", True),
("()", True),
("(){}[]", True),
("(({}))", True),
("(", False),
(")", False),
("(((", False),
("{[]}", False),
]
for brackets, expected in test_cases:
actual = self.Solution.isvalid(brackets)
assert actual == expected, (
f"შეცდომა {brackets!r}"
f"მოსალოდნელი იყო {expected}, მაგრამ მიიღეს {actual}"
)
print(f"ყველა ტესტი წარმატებით ჩატარდა: {len(test_cases)}")
if __name__ == "__main__":
SolutionTest().run()