实现也很简单,只需要一个一维数组和一个指向栈顶的变量 top 就可以了。我们通过 top 来对栈进行插入和删除操作。

##特点:后进先出

利用栈判断是否回文(java实现)

    public static void main(String[] args) {
        char[] character = { 'a', 'a', 'h', 'a', 'a' };
        char[] stack = new char[10];
        int top = -1;
        int mid = character.length % 2 == 0 ? character.length / 2 - 1 : character.length / 2;
        for (int i = 0; i <= mid; i++) {
            top++;
            stack[top] = character[i];
        }
        if (character.length % 2 == 0) {
            mid++;
        }
        for (int i = mid; i < character.length; i++) {
            if (top >= 0) {
                if (stack[top] != character[i]) {
                    break;
                }
            }
            top--;
        }
        if (top == -1) {
            System.out.println("YES");
        } else {
            System.out.println("NO");
        }
    }