Проверка допустимых круглых скобок в Java: пример примера

Вот пример кода Java, который проверяет наличие скобок в заданной строке:

import java.util.*;
public class ValidParentheses {
    public static boolean isValid(String s) {
        Stack<Character> stack = new Stack<>();
        for (char c : s.toCharArray()) {
            if (c == '(' || c == '[' || c == '{') {
                stack.push(c);
            } else if (c == ')' || c == ']' || c == '}') {
                if (stack.isEmpty()) {
                    return false;
                }
                char top = stack.pop();
                if ((c == ')' && top != '(') || (c == ']' && top != '[') || (c == '}' && top != '{')) {
                    return false;
                }
            }
        }
        return stack.isEmpty();
    }
    public static void main(String[] args) {
        String input = "{[()]()}";
        boolean isValid = isValid(input);
        System.out.println("Is input valid? " + isValid);
    }
}

Этот код использует стек для отслеживания открывающихся круглых скобок, встречающихся в строке. Всякий раз, когда встречается закрывающая скобка, она сверяется с вершиной стека, чтобы убедиться, что скобки сбалансированы правильно. Если в конце процесса стек пуст, это означает, что все круглые скобки закрылись правильно и строка считается допустимой.