Intern
20. To'g'ri Kengashlar Berilgan s satri faqat '(', ')', '{', '}', '[' va ']' belgilardan iborat. Kiritilgan satrning to'g'riligi yoki noto'g'riligi aniqlang. Kiritilgan satr to'g'ri bo'lsa: 1. Ochilgan qavslar shuningdek turdagi qavslar bilan yopilishi kerak. 2. Ochilgan qavslar to'g'ri tartibda yopilishi kerak. 3. Har bir yopilgan qavsga mos keladigan ochilgan qavs bo'lishi kerak. Misol 1: Kiritish: s = "()" Chiqish: true Misol 2: Kiritish: s = "()[]{}" Chiqish: true Misol 3: Kiritish: s = "(]" Chiqish: false
sobes.tech AI
AIdan javob
Для проверки валидности строки с скобками удобно использовать стек. Идея:
- Проходим по символам строки.
- Если символ — открывающая скобка, кладём её в стек.
- Если закрывающая — проверяем, что верхний элемент стека соответствует ей по типу.
- Если нет соответствия или стек пуст, строка невалидна.
- В конце стек должен быть пустым.
Пример на Python:
def isValid(s):
stack = []
pairs = {')': '(', '}': '{', ']': '['}
for char in s:
if char in '([{':
stack.append(char)
elif char in ')]}':
if not stack or stack.pop() != pairs[char]:
return False
return not stack
# Примеры
print(isValid("()")) # True
print(isValid("()[]{}")) # True
print(isValid("(]")) # False