《啊哈!算法》学习笔记之栈

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

特点:后进先出

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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");
}
}