沒(méi)有多少人能解決的五個(gè) Python 難題
這是一個(gè)挑戰(zhàn)——嘗試解決以下 5 個(gè) Python 編程難題,不要用谷歌或百度去搜索答案。
1) 幻方
幻方是包含數(shù)字 1 到 9 的 3x3 網(wǎng)格。每 3 個(gè)連續(xù)數(shù)字(行、列或?qū)蔷€)必須加起來(lái)為 15。下面是一個(gè)有效的幻方示例:
在這個(gè)謎題中,你得到了一個(gè)不完整的幻方。
幻方不應(yīng)該有 0。此處,0 表示您需要填寫 1 到 9 之間的數(shù)字。
- 1 到 9 每個(gè)數(shù)字只能出現(xiàn)一次
- 3 個(gè)數(shù)字的每一行、每一列和對(duì)角線的和必須等于 15
2) 大寫一個(gè)搞砸的字典
給你一個(gè)亂七八糟的字典,里面有多個(gè)非結(jié)構(gòu)化的嵌套。例如:
編寫一個(gè)函數(shù),接受這個(gè)搞砸的字典,并返回這個(gè)字典的副本,其中所有鍵和值都轉(zhuǎn)換為大寫。
3) 來(lái)自字符串的字典
給你一個(gè)代表字典的字符串。
假設(shè)鍵值對(duì)很簡(jiǎn)單,沒(méi)有嵌套的列表、字典等集合。值將只是數(shù)字(in/float)、字符串或布爾值。
在不使用 json 庫(kù)、exec 或 eval 函數(shù)或任何其他內(nèi)置解析器的情況下,編寫一個(gè)接受此字符串的函數(shù),并返回由該字符串表示的實(shí)際字典。
4) 迷宮中的最短路徑
您將獲得代表迷宮的字符串列表。
- P 代表玩家
- - 代表一個(gè)空的空間。玩家可以站在空地上
- #代表一堵墻。玩家不能站在墻上
- X代表目標(biāo)。如果玩家達(dá)到目標(biāo),他就會(huì)獲勝。
編寫一個(gè)接受這個(gè)迷宮的函數(shù),并返回從玩家到目標(biāo)的最短路徑。玩家一次只能移動(dòng)一步,而且只能向 4 個(gè)方向移動(dòng)——向上、向下、向左和向右。該函數(shù)返回的示例:
5) 把字典轉(zhuǎn)換為列表
再一次,你會(huì)得到一個(gè)混亂的、搞砸了的、有多層嵌套的字典。
編寫一個(gè)函數(shù)將其中的每個(gè)嵌套字典轉(zhuǎn)換為列表。輸出示例:
結(jié)論
你單憑自己的能力解決了幾個(gè)難題呢?花了多長(zhǎng)時(shí)間?