用java的栈和队列实现判断输入字符串是否为回文字符串
这里提供两种方法:
方法一:使用栈
- 遍历输入字符串,将每个字符依次入栈;
- 再次遍历输入字符串,将每个字符出栈并与当前字符比较,如果不相等则不是回文字符串,直接返回 false;
- 如果遍历完输入字符串后仍没有返回 false,则说明是回文字符串,返回 true。
代码实现:
public static boolean isPalindrome(String str) {
Stack<Character> stack = new Stack<>();
for (int i = 0; i < str.length(); i++) {
stack.push(str.charAt(i));
}
for (int i = 0; i < str.length(); i++) {
if (stack.pop() != str.charAt(i)) {
return false;
}
}
return true;
}
方法二:使用队列
- 遍历输入字符串,将每个字符依次入队列;
- 再次遍历输入字符串,将每个字符出队列并与当前字符比较,如果不相等则不是回文字符串,直接返回 false;
- 如果遍历完输入字符串后仍没有返回 false,则说明是回文字符串,返回 true。
代码实现:
public static boolean isPalindrome(String str) {
Queue<Character> queue = new LinkedList<>();
for (int i = 0; i < str.length(); i++) {
queue.offer(str.charAt(i));
}
for (int i = 0; i < str.length(); i++) {
if (queue.poll() != str.charAt(i)) {
return false;
}
}
return true;
}
``
原文地址: https://www.cveoy.top/t/topic/e3cM 著作权归作者所有。请勿转载和采集!