💥 该系列属于【Java基础编程500题】专栏,如您需查看Java基础的其他相关题目,请您点击左边的连接
目录
1. 使用Stack实现一个简单的栈操作程序,包含入栈、出栈和查看栈顶元素的功能。
✨✨ 返回题目目录 ✨ ✨
1. 使用Stack实现一个简单的栈操作程序,包含入栈、出栈和查看栈顶元素的功能。
import java.util.Stack;
class Main {
public static void main(String[] args) {
Stack<Character> st = new Stack<>();
//入栈
st.push('A');
st.push('B');
st.push('C');
System.out.println(st.toString());
//出栈
Character pop = st.pop();
System.out.println(pop);
//栈顶元素
System.out.println(st.peek());
}
}
2. 使用Stack实现一个简单的逆序输出字符串的功能。
import java.util.Stack;
public class Main {
public static void main(String[] args) {
String input = "abcdefg";
Stack<Character> stack = new Stack<>();
// 将字符串中的字符依次入栈
for (char c : input.toCharArray()) {
stack.push(c);
}
// 出栈并输出字符
while (!stack.isEmpty()) {
System.out.print(stack.pop());
}
}
}
3. 使用Stack判断一个字符串是否是回文。
import java.util.Stack;
public class Main {
public static void main(String[] args) {
String input = "上海自来水来自海上";
Stack<Character> stack = new Stack<>();
// 将字符串中的字符(除去空格)依次入栈
for (char c : input.toCharArray()) {
if (c != ' ') {
stack.push(c);
}
}
// 出栈并与原字符串比较
for (char c : input.toCharArray()) {
if (c != ' ' && stack.pop() != c) {
System.out.println("不是回文");
return;
}
}
System.out.println("是回文");
}
}
4. 使用Stack反转一个整数。
import java.util.Stack;
public class Main {
public static void main(String[] args) {
int number = 12345;
Stack<Integer> stack = new Stack<>();
// 将整数的每一位数字入栈
while (number > 0) {
stack.push(number % 10);
number /= 10;
}
// 出栈并组成反转的整数
int reversedNumber = 0;
int multiplier = 1;
while (!stack.isEmpty()) {
reversedNumber += stack.pop() * multiplier;
multiplier *= 10;
}
System.out.println("反转后的整数为:" + reversedNumber);
}
}
5. 使用栈来判断字符串中的括号是否匹配。
import java.util.Stack;
public class Main {
public static void main(String[] args) {
String brackets = "{[()]}";
boolean isBalanced = areBracketsBalanced(brackets);
System.out.println("括号是否匹配: " + (isBalanced ? "是" : "否"));
}
private static boolean areBracketsBalanced(String str) {
Stack<Character> stack = new Stack<>();
for (char ch : str.toCharArray()) {
if (ch == '(' || ch == '[' || ch == '{') {
stack.push(ch);
} else if (ch == ')' || ch == ']' || ch == '}') {
if (stack.isEmpty()) {
return false;
}
char top = stack.pop();
if ((ch == ')' && top != '(') || (ch == ']' && top != '[') || (ch == '}' && top != '{')) {
return false;
}
}
}
return stack.isEmpty();
}
}