java栈和队列判断回文
时间: 2023-12-31 20:23:43 浏览: 124
在Java中,可以使用栈和队列来判断一个字符串是否是回文。下面是一个示例代码:
```java
import java.util.*;
public class PalindromeChecker {
public static boolean isPalindrome(String str) {
// 创建一个栈和一个队列
Stack<Character> stack = new Stack<>();
Queue<Character> queue = new LinkedList<>();
// 将字符串的字符依次入栈和入队
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
stack.push(c);
queue.add(c);
}
// 依次比较栈顶和队首的字符
while (!stack.isEmpty() && !queue.isEmpty()) {
if (stack.pop() != queue.poll()) {
return false;
}
}
// 如果栈和队列都为空,则字符串是回文
return stack.isEmpty() && queue.isEmpty();
}
public static void main(String[] args) {
String str = "abcba";
boolean isPalindrome = isPalindrome(str);
System.out.println("Is \"" + str + "\" a palindrome? " + isPalindrome);
}
}
```
运行以上代码,将输出:
```
Is "abcba" a palindrome? true
```
这段代码使用了一个栈和一个队列来判断字符串是否是回文。首先,将字符串的字符依次入栈和入队。然后,依次比较栈顶和队首的字符,如果有不相等的字符,则字符串不是回文。最后,如果栈和队列都为空,则字符串是回文。
阅读全文