c

codeye

V1

2022/11/02阅读:18主题:默认主题

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"] 。
        ]
    ]]
]

结论

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

分类:

后端

标签:

后端

作者介绍

c
codeye
V1