判断回文字符串
题目描述
若一个字符串的正序与倒序相同,则称其为回文字符串;现在给定一个字符串,使用递归的方法,判断他是否是回文字符串。
1.思想:
用一个队列和栈来存放字符数组,然后通过弹栈和出队的方式,判断字符数组中的字符是否相等;
2.具体代码:
public class HuiWen {
public static void main(String[] args){
System.out.println(isHuiWen("abcba"));
System.out.println(isHuiWen("123456654321"));
System.out.println(isHuiWen("abc"));
System.out.println(isHuiWen("liyuanfeng"));
}
private static boolean isHuiWen(String str){
char[] chars = str.toCharArray();//字符串转字符数组
Stack<Character> stack = new Stack<>();
ArrayDeque<Character> queue = new ArrayDeque<>();
for(char aChar : chars) {
stack.push(aChar);
queue.add(aChar);
}
for(int i = 0;i < queue.size();i++){
if(queue.pop() != stack.pop()) return false;
}
return true;
}
}