Вот пример кода 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);
}
}
Этот код использует стек для отслеживания открывающихся круглых скобок, встречающихся в строке. Всякий раз, когда встречается закрывающая скобка, она сверяется с вершиной стека, чтобы убедиться, что скобки сбалансированы правильно. Если в конце процесса стек пуст, это означает, что все круглые скобки закрылись правильно и строка считается допустимой.