Java栈实现判断回文字符串 | 代码示例与解析
用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));
}
}
代码解析
- 创建一个栈对象
stack,用于存储输入字符串的前半部分字符。 - 遍历输入字符串的后半部分字符,同时从栈中弹出字符进行比较。
- 如果有任何一个字符不相等,则说明该字符串不是回文字符串,返回
false。 - 如果遍历完成后都没有返回
false,则说明该字符串是回文字符串,返回true。
测试案例
在示例代码中,测试了两个字符串:一个是回文字符串'racecar',另一个不是回文字符串'hello'。运行结果如下:
racecar is palindrome? true
hello is palindrome? false
总结:
本文介绍了如何使用Java栈来判断输入字符串是否为回文字符串,并通过代码示例和解析帮助你理解其实现原理。希望本文能够对你有所帮助。
原文地址: https://www.cveoy.top/t/topic/n1s6 著作权归作者所有。请勿转载和采集!