Intern
20. Parenthèses valides Étant donné une chaîne s contenant uniquement les caractères '(', ')', '{', '}', '[' et ']', déterminez si la chaîne d'entrée est valide. Une chaîne d'entrée est valide si : 1. Les crochets ouverts doivent être fermés par le même type de crochets. 2. Les crochets ouverts doivent être fermés dans le bon ordre. 3. Chaque crochet de fermeture a un crochet d'ouverture correspondant du même type. Exemple 1 : Entrée : s = "()" Sortie : true Exemple 2 : Entrée : s = "()[]{}" Sortie : true Exemple 3 : Entrée : s = "(]" Sortie : false
sobes.tech IA
Réponse de l'IA
Для проверки валидности строки с скобками удобно использовать стек. Идея:
- Проходим по символам строки.
- Если символ — открывающая скобка, кладём её в стек.
- Если закрывающая — проверяем, что верхний элемент стека соответствует ей по типу.
- Если нет соответствия или стек пуст, строка невалидна.
- В конце стек должен быть пустым.
Пример на 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