【发布时间】:2019-05-25 11:52:06
【问题描述】:
我想使用 java 中的堆栈实现检查字符串是否为回文。我尝试了很多方法,但它没有让我得到正确的答案。有人可以帮我吗?
我在我的类中实现了一个堆栈,其变量名为“stackArray”。
回文法:
Stack s1 = new Stack(5);
for (int i = 0; i < 5; i++) {
s1.push(stackArray[i]);
}
String [] reverser = new String[5];
while (!s1.isEmpty()) {
int count = 0;
reverser[count] = s1.pop();
count++;
}
if (s1.equals(reverser)){
System.out.println("The input String is a palindrome.");
}
else
System.out.println("The input String is not a palindrome.");
驱动代码:
public static void main(String[] args) throws Exception {
Stack st = new Stack(5);
st.push("l");
st.push("e");
st.push("v");
st.push("e");
st.push("l");
System.out.println("");
System.out.println("When Palindromic is starting; ");
System.out.println("");
st.palindromic();
}
很明显,“级别”这个词是回文,但它总是说“输入字符串不是回文”。
【问题讨论】:
-
您的代码不完整——缺少 Stack 实现。请提供显示您的问题的最少代码:stackoverflow.com/help/minimal-reproducible-example
-
我会创建一个单独的类来接收构造函数中的输入字符串。该类应该有一个名为
IsPalindromic()的方法,它返回真/假。在这个类中,您将使用您的 Stack 类。这个类可以在内部有一个Reversed()函数,它简单地将所有字母压入内部堆栈,然后返回一个新字符串,当您将它们弹出时将它们连接起来。然后IsPalindromic()可以将传入的原始字符串与反转的字符串进行比较。
标签: java data-structures stack