检查数组是否为回文的伪代码
Pseudo-code to check if an array is a palindrome
我正在尝试编写一个 algorithm/pseudo-code 来使用 Stack 检查给定数组 A 是否为回文。
我们的方法是:
- 将数组 a [left….right] 的元素“推”到新创建的堆栈上,这样左边的元素首先被推入。因此,数组元素被反转,使得数组的最后一个元素位于堆栈的顶部。
之后,我们将 Stack 中的每个元素“弹出”到新创建的数组 b 中。这意味着原始数组 a 的最后一个元素成为新数组 b 的第一个元素。
最后比较a和b的每个元素,如果相等,则原数组a是回文
算法步骤:
空栈S
左置l,右置r(数组a)
对于数组 a [l…r] 中的每个元素,重复:
3.1.添加元素到栈顶 S
创建一个新的空数组 b 使得 b [left…..right]
当栈S不为空时,重复:
5.1 从S的顶部取出每个元素到数组b
将数组 a 和 b 的 l 设置为左侧,r 设置为右侧。
6.1 如果a[左….右]≠b[左….右];以错误的答案终止
6.2 Else a [左...右] = b [左.....右];
终止,答案是回文。
呸!!!!
我正在尝试编写一个 algorithm/pseudo-code 来使用 Stack 检查给定数组 A 是否为回文。
我们的方法是: - 将数组 a [left….right] 的元素“推”到新创建的堆栈上,这样左边的元素首先被推入。因此,数组元素被反转,使得数组的最后一个元素位于堆栈的顶部。
之后,我们将 Stack 中的每个元素“弹出”到新创建的数组 b 中。这意味着原始数组 a 的最后一个元素成为新数组 b 的第一个元素。
最后比较a和b的每个元素,如果相等,则原数组a是回文
算法步骤:
空栈S
左置l,右置r(数组a)
对于数组 a [l…r] 中的每个元素,重复: 3.1.添加元素到栈顶 S
创建一个新的空数组 b 使得 b [left…..right]
当栈S不为空时,重复: 5.1 从S的顶部取出每个元素到数组b
将数组 a 和 b 的 l 设置为左侧,r 设置为右侧。 6.1 如果a[左….右]≠b[左….右];以错误的答案终止 6.2 Else a [左...右] = b [左.....右];
终止,答案是回文。
呸!!!!