最近面试遇到现场写代码解析算术表达式,当时只想到使用栈来解析,但是没有最终写完,所以重新温习栈的知识。
栈的定义:
只允许访问一个数据项即最后插入的数据项。移除这个数据项后才能访问倒数第二个数据项。即先进后出
代码实现如下:
public class Main {
public static void main(String[] args) {
String s = "abcdef";
System.out.println(reverse(s));
}
private static String reverse(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
stack.push(c);
}
String reverse = "";
while (!stack.empty()) {
reverse = reverse + stack.pop().toString();
}
return reverse;
}
}