Привет, коллеги-программисты! Сегодня мы собираемся погрузиться в увлекательный мир проверки круглых скобок в вашем коде. Мы все знаем, что даже крошечная неправильно поставленная скобка может вызвать каскад ошибок, поэтому очень важно убедиться, что ваши круглые скобки сбалансированы. В этом руководстве «Сделай сам» мы рассмотрим различные методы достижения этой цели, дополненные простыми для понимания примерами кода. Итак, начнем!
Метод 1: подход на основе стека
Один из наиболее распространенных и эффективных способов проверки баланса скобок — использование стека. Идея проста: перебрать код и поместить открывающие круглые скобки в стек. Когда вы встретите закрывающую скобку, извлеките верхний элемент из стека и проверьте, соответствует ли он закрывающей скобке. Если к концу итерации стек пуст, то круглые скобки сбалансированы.
Вот фрагмент кода на Python, демонстрирующий подход на основе стека:
def is_valid_parentheses(s):
stack = []
opening_brackets = ['(', '[', '{']
closing_brackets = [')', ']', '}']
for char in s:
if char in opening_brackets:
stack.append(char)
elif char in closing_brackets:
if not stack:
return False
if opening_brackets.index(stack.pop()) != closing_brackets.index(char):
return False
return len(stack) == 0
Метод 2: подсчет
В этом методе мы используем два счетчика для отслеживания количества открывающихся и закрывающих скобок. Выполните итерацию по коду, увеличивая счетчик открывающей скобки при обнаружении открывающей скобки и уменьшая его при обнаружении закрывающей скобки. Если счетчики в конце равны и оба равны нулю, то круглые скобки сбалансированы.
Давайте взглянем на фрагмент кода на JavaScript, демонстрирующий подход подсчета:
function isValidParentheses(s) {
let openCount = 0;
for (let char of s) {
if (char === '(') {
openCount++;
} else if (char === ')') {
if (openCount === 0) {
return false;
}
openCount--;
}
}
return openCount === 0;
}
Метод 3: подход с использованием регулярных выражений.
Если вы любите приключения, вы также можете использовать регулярные выражения для проверки сбалансированности круглых скобок. Идея состоит в том, чтобы заменить все допустимые пары круглых скобок пустой строкой и проверить, пуста ли полученная строка.
Вот фрагмент кода на Java, демонстрирующий подход с использованием регулярных выражений:
import java.util.regex.Pattern;
public class ParenthesesValidator {
public static boolean isValidParentheses(String s) {
String regex = "\\(\\)|\\[\\]|\\{\\}";
Pattern pattern = Pattern.compile(regex);
String result = s.replaceAll(regex, "");
return result.isEmpty();
}
}
Поздравляем! Вы изучили несколько методов проверки круглых скобок в вашем коде. Независимо от того, предпочитаете ли вы подход на основе стека, метод подсчета или даже подход с регулярными выражениями, теперь у вас есть инструменты, позволяющие обеспечить сбалансированность круглых скобок. Помните, что хорошо сбалансированный код — это ключ к плавному выполнению и безошибочным программам. Приятного кодирования!