我正在使用自我实现的堆栈来删除和添加字符以获得最终结果(我有点解码字符串)。
示例:输入'hello-'必须给'地狱'。 ' - '删除前面的字符。
当前输出 - 'hellol'
唯一的要求是我必须使用自己实现的堆栈。你们有什么建议吗?感谢您的帮助!
//this is my code for the stack
public class MyStack{
static int maxSize;
static char[] stackArray;
static int top;
public MyStack(int s) {
maxSize = s;
stackArray = new char[maxSize];
top = -1;
}
public boolean empty() {
return (top == -1);
}
public void push(char item) {
stackArray[++top] = item;
}
public char peek() {
return stackArray[top];
}
public char pop() {
return stackArray[top--];
}
}
//this is in my main:
for (char ch : password.toCharArray()){ //password is the input(hello-)
if(Character.isLetter(ch) || Character.isDigit(ch)){
theStack.push(ch);
System.out.println(theStack.peek());
}
if(ch == '-'){
theStack.pop();
System.out.println(theStack.peek());
}
}
答案 0 :(得分:1)
覆盖toString
的{{1}}:
MyStack
现在你可以做到
@Override
public String toString() {
return "MyStack: " + new String(stackArray, 0, top + 1):
}
字段不应为System.out.println(theStack);
。对于static
,整个班级的字段都存在一次。没有每个堆栈对象都存在字段。
static