我试图编写一个函数def mrg_stacks(s1,s2):
,它将两个堆栈合并在一起并返回一个新堆栈。两个参数堆栈应按顺序保留相同的原始值。
stack_a = Stack()
stack_a.push(1)
stack_a.push(2)
stack_b = Stack()
stack_b.push(3)
stack_b.push(4)
my_stack = merge_stacks(stack_a , stack_b)
while not my_stack.is_empty():
print( my_stack.pop())
while not stack_a.is_empty():
print( stack_a.pop())
while not stack_b.is_empty():
print( stack_b.pop())
我还创建了测试用例:
4
3
2
1
2
1
4
3
结果:
@interface UIViewController (MyDataConnection)
- (void)thisIsYourMethodHere;
@end
答案 0 :(得分:0)
你可以使用append和pop作为同义词来推送和弹出python。
所以你有
print "Hello World!\n"
def merge(a,b):
ans = []
while(len(a)>0):
ans.append(a.pop())
while(len(b)>0):
ans.append(b.pop())
return(ans)
a = [3,4]
b = [1,2]
m = merge(a,b)
for k in m:
print(k)
打印:
4
3
2
1
答案 1 :(得分:0)
这是自图灵以来每个学生都一样的游戏。
class node():
value = None
next = None
def __init__(self,val):
self.value=val
def setNext(self,next):
self.next=next
class Stack:
next = None
current = None
def is_empty(self):
if(current == none):
return(True)
return(False)
def push(self,next):
next.setNext(self.current)
self.current = next
def pop(self):
temp = self.current
self.current = self.current.next
return(temp)
def mrg_stacks(a,b):
ans = []
while(not a.is_empty):
ans.append(a.pop())
while(not b.is_empty):
ans.append(b.pop())
return(ans)
答案 2 :(得分:0)
Lol compsci 105?
首先尝试将其绘制为图表:
顶部--->底部(堆栈)
堆栈A:| 2 | 1 |
堆栈B:| 4 | 3 |
合并堆栈:| 4 | 3 | 2 | 1 |
所以你想从堆栈A& B通过push和pop方法进入Merged Stack,但你不能直接从Stack A弹出然后推送它会给它错误的顺序。所以我的提示:反转堆栈