【发布时间】:2020-01-16 09:54:59
【问题描述】:
我在一次采访中被问到这个问题:
使用 O(1) 空间检查给定的两个堆栈是否相等(元素的大小和顺序)。
堆栈应保持其早期状态(元素顺序)。
递归使用堆栈空间,因此无效。
我的一个朋友建议使用字符串变量并将一个堆栈中的元素附加到其中,然后将弹出的元素推送到另一个堆栈,然后从 S2(S1 的旧元素)推送到 S1,并对 S2 执行相同的操作。但这取决于堆栈的大小,因为字符串会根据堆栈的大小而增长。
【问题讨论】:
-
仅仅从两个堆栈中弹出并比较弹出的项目直到其中一个堆栈为空是不够的?如果任何一对不相等,它们就不相等
-
堆栈应保持其初始状态,但此处堆栈将处于不同状态。
标签: data-structures stack