だから私は関数を持っています:
def flip_stack(stack, nFlip):
"""flip_stack(list, num)
Edits stack to flip the first nFlip elements in the stack."""
newStack = stack[:nFlip]
for element in newStack:
stack.remove(element)
newStack.reverse()
stack = newStack + stack
return(stack)
与えられた
stack = [2, 3, 1, 4, 0]
nFlip = 3
stack = [1, 3, 2, 4, 0]
これで大部分は機能します。正しい場所でスタックを反転します。
ただし、後でそれを使用する場合:
difStack = stack
flip_pancakes(difStack, difStack.index(max(difStack)) + 1) # flip stack so largest number is at front
print(stack)
スタックが突然 [0] になる理由は誰にも分かりますか? コードの 2 番目のビットの flip_pancakes() 関数は、difStack だけを変更する必要があります。
そして、その特定のビットが本当に厄介であることを認識しています。それを改善する方法はありますか?
ありがとう!