这里提供两种方法:

方法一:使用栈

  1. 遍历输入字符串,将每个字符依次入栈;
  2. 再次遍历输入字符串,将每个字符出栈并与当前字符比较,如果不相等则不是回文字符串,直接返回 false;
  3. 如果遍历完输入字符串后仍没有返回 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;
}

方法二:使用队列

  1. 遍历输入字符串,将每个字符依次入队列;
  2. 再次遍历输入字符串,将每个字符出队列并与当前字符比较,如果不相等则不是回文字符串,直接返回 false;
  3. 如果遍历完输入字符串后仍没有返回 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;
}
``
用java的栈和队列实现判断输入字符串是否为回文字符串

原文地址: https://www.cveoy.top/t/topic/e3cM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录