用Java栈实现判断输入字符串是否为回文字符串

本文将使用Java栈数据结构来判断输入字符串是否为回文字符串。

代码示例

import java.util.*;

public class Palindrome {
    public static boolean isPalindrome(String str) {
        Stack<Character> stack = new Stack<>();
        int len = str.length();
        int mid = len / 2;
        for (int i = 0; i < mid; i++) {
            stack.push(str.charAt(i));
        }
        if (len % 2 != 0) {
            mid++;
        }
        for (int i = mid; i < len; i++) {
            if (stack.pop() != str.charAt(i)) {
                return false;
            }
        }
        return true;
    }

    public static void main(String[] args) {
        String str1 = 'racecar';
        String str2 = 'hello';
        System.out.println(str1 + ' is palindrome? ' + isPalindrome(str1));
        System.out.println(str2 + ' is palindrome? ' + isPalindrome(str2));
    }
}

代码解析

  1. 创建一个栈对象stack,用于存储输入字符串的前半部分字符。
  2. 遍历输入字符串的后半部分字符,同时从栈中弹出字符进行比较。
  3. 如果有任何一个字符不相等,则说明该字符串不是回文字符串,返回false
  4. 如果遍历完成后都没有返回false,则说明该字符串是回文字符串,返回true

测试案例

在示例代码中,测试了两个字符串:一个是回文字符串'racecar',另一个不是回文字符串'hello'。运行结果如下:

racecar is palindrome? true
hello is palindrome? false

总结:

本文介绍了如何使用Java栈来判断输入字符串是否为回文字符串,并通过代码示例和解析帮助你理解其实现原理。希望本文能够对你有所帮助。

Java栈实现判断回文字符串 | 代码示例与解析

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

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