题解 | #汉诺塔问题#

汉诺塔问题

https://www.nowcoder.com/practice/7d6cab7d435048c4b05251bf44e9f185

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 
# @return string字符串一维数组
#

class Solution:
    
    def a_to_b(self, n, a_str, b_str):
        stage_log = []
        if n == 1:
            stage_log.append("move from {} to {}".format(a_str, b_str))
        else:
            all_direct = set(["left", "mid", "right"])
            another_elem = list(all_direct-set([a_str, b_str]))[0]
            stage_log.extend(self.a_to_b(n-1, a_str, another_elem))
            stage_log.append("move from {} to {}".format(a_str, b_str))
            stage_log.extend(self.a_to_b(n-1, another_elem, b_str))
        return stage_log

    def getSolution(self, n):
        stage_log =  self.a_to_b(n, "left", "right")
        return stage_log

全部评论

相关推荐

05-27 18:08
已编辑
门头沟学院 Java
程序员牛肉:就这两个烂大街项目+学院本+无实习基本就找不到。 优先建议你找信得过的学长包装一段实习,先追求不饿死再说。你这个学历不走点歪门邪道很难找到这个行业的好工作了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务