5个困难的Python谜题

5个困难的Python谜题,没有多少人能够解决 我挑战你,证明我是错的

这里有一个挑战--尝试解决以下5个Python编程谜题,而不需要在谷歌上寻找答案。

  1. 魔术方块 魔术方格是一个包含数字1到9的3x3网格。每3个连续的数字(行、列或对角线)必须加起来是15下面是一个有效的魔方
[ [2, 7, 6],
   [9, 5, 1],
   [4, 3, 8] ]

在这个谜题中,你得到的是一个不完整的魔方。

[ [2, 0, 0],
   [0, 0, 0],
   [0, 3, 8] ]

魔术方格是不应该有0的。在这里,0意味着你需要用1到9之间的数字来填充它。

1到9之间的每个数字只能出现一次 每一行、每一列和每一条对角线上的3个数字加起来都必须是15。

def solve(incomplete_square):
    # 这里的代码
    square = [  
        [2, 0, 0],
        [0, 0, 0],
        [0, 3, 8]
                ]
solve(square)
# [ [2, 7, 6],
# [9, 5, 1],
# [4, 3, 8] ]
  1. 给一个混乱的字典加上大写字母

你会得到一个混乱的、有多个非结构化嵌套层的搞砸了的字典。例如。


d = {
    "a": {"b""c"},
    "d": {
        "e""f",
        "g": {
            "h""i",
            "j""k",
            "l""m"
        },
        "n": {
            "o": {
                "p": {
                    "q": {"r""s"}
                }
            }
        }
    }
}

写一个函数,接收这个搞砸了的字典,并返回这个字典的COPY,其中所有的键和值都被转换为大写字母。


d = {
    "A": {"B""C"},
    "D": {
        "E""F",
        "G": {
            "H""I",
            "J""K",
            "L""M"
        },
        "N": {
            "O": {
                "P": {
                    "Q": {"R""S"}
                }
            }
        }
    }
}
  1. 字典来自字符串

给你一个字符串,代表一个字典。

string = '{"name": "rocky", "age":5, "imported":True}'

假设键值对很简单,而且没有嵌套的列表、字典和其他集合。值将只是数字(int/float)、字符串或布尔值。

在不使用json库、exec或eval函数或任何其他内置解析器的情况下,编写一个函数,接收这个字符串,并返回一个由该字符串表示的实际字典。

  1. 迷宫中的最短路径 给你一个代表迷宫的字符串列表。
maze = [
    "P#----",
    "-#-##-",
    "------",
    "-#-##-",
    "-#-#--",
    "---#-X",]

P代表玩家

- 代表一个空位。玩家可以站在空位上
# 代表一堵墙。玩家不能站在墙壁上

X代表目标。如果玩家到达目标,则获胜。

编写一个函数,接收这个迷宫,并返回从玩家到目标的最短路径。玩家每次只能移动一步,而且只能从四个方向移动--向上、向下、向左和向右。该函数返回的一个样本。

["下""下""右""右""右""下""下""下"
  1. 混乱的字典到混乱的列表

再一次,你得到了一个混乱的、有多层嵌套的搞砸了的字典。


d = {
    "a""b",
    "c""d",
    "e": {
        "f""g",
        "h""i"
    },
    "j": {
        "k": {
            "l": {"m""n"}
        }
    }
}

写一个函数,将里面的每一个嵌套的 dictionary 转换为一个 list。一个输出的例子。

d = [
    ["a""b"],
    ["c""d"],
    ["e", [
        ["f""g"],
        ["h""i"]
    ]],
    ["j", [
        "k", [
            "l", ["m""n"] 。
        ]
    ]]
]

结论

你设法解决了多少个问题?你花了多长时间?

本文由 mdnice 多平台发布

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值