Java 符号序列有效性校验:使用栈实现
以下是使用 Java 编写的示例代码,用于判断符号序列的有效性,例如 '{[()]}':
import java.util.Stack;
public class SymbolSequenceValidation {
public static void main(String[] args) {
String symbolSequence = '{[()]}';
String result = isValidSymbolSequence(symbolSequence);
System.out.println(result);
}
public static String isValidSymbolSequence(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() || !isMatching(stack.peek(), c)) {
return "N";
}
stack.pop();
}
}
return stack.isEmpty() ? "Y" : "N";
}
public static boolean isMatching(char left, char right) {
return (left == '(' && right == ')') ||
(left == '[' && right == ']') ||
(left == '{' && right == '}');
}
}
运行以上代码,输出结果为:
Y
示例中的 isValidSymbolSequence() 方法用于判断符号序列的有效性。您可以将输入符号序列作为字符串传递给该方法,并根据返回的结果判断序列是否有效。
原文地址: https://www.cveoy.top/t/topic/bOOd 著作权归作者所有。请勿转载和采集!