#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param n int整型
# @return string字符串一维数组
#
class Solution:
def getSolution(self , n: int) -> List[str]:
# write code here
# 思路梳理:
# 要把圆盘全部移到最右边分为三步
# 第一步:将n-1个盘子借助右柱子移到中间
# 第二步:将第n个盘子从左柱子移到右柱子
# 第三步:将n-1个盘子借助左柱子移到右边
self.result_list = []
self.hanoi(n,'left','right','mid')
return self.result_list
def hanoi(self,k,source,target,auxiliary):
if k == 1:
self.result_list.append(f'move from {source} to {target}')
return
self.hanoi(k-1,source,auxiliary,target)
self.result_list.append(f'move from {source} to {target}')
self.hanoi(k-1,auxiliary,target,source)