當好玩的數獨變燒腦的數獨Valid Sudoku(python解題心得)

更新於 發佈於 閱讀時間約 3 分鐘

學習Python大概一個半月了,老師出Leetcode上的Valid Sudoku當作業給我們練習,也就是寫出一隻程式,檢查9X9的數獨直排、橫排、小宮格是否合理。我覺得是一個很棒的綜合練習:https://leetcode.com/explore/interview/card/top-interview-questions-easy/92/array/769/

會特別想分享心得是因為,數獨是幾乎人人都知道的小遊戲,在以前沒有智慧型手機的時候,數獨也是打發時間的好幫手,但是那時候很疑惑,到底是誰在發明數獨的題目,他每天都要一行一行+一格一格檢查,太辛苦了吧!沒想到檢查數獨正確性對電腦來說,就是幾行程式碼、不到幾秒鐘的事情,真想搭時光機回去跟小時候的自己說:你的擔心是多餘啦🤣

突然想到還沒學Python的時候,我有一陣子在追Netflix的魔鬼的計謀2(The Devil’s Plan: Death Room),裡面的「騎士巡遊」也超級燒腦,那時候我下載相關的手機APP,感覺用起來都不順手,我就叫ChatGPT幫我設計,放去Codepen裡面,能玩!還玩了好幾題XD大概長這樣,就很單純:

raw-image

回到9X9數獨,我先梳理邏輯:

第一步--檢查直排

第二步--檢查橫排

第三步--檢查小格(Box)

第一步跟第二步,只要先把邏輯順過就寫得出來;

但是第三步,我卡了很久,都一直只能寫得出最左上角的那一格,鬼打牆!

raw-image

向老師請教,才知道原來可以用餘數跟商數的方式去解!(//、%)

把格子想成座標,例如:(0, 0)、(3, 6)也就是每一個小box的左上角那一格,都是一個座標的話,就會發現是0、3、6這三個數字在跳(好神奇啊!)

老師說,若第一次寫這題,只寫得出橫排、直排然後寫不出小box是正常的,原來如此;

雖然這題寫得有點久,還拿紙筆出來塗塗寫寫,不過瞭解了如何解題後,就覺得豁然開朗。讓我學習到,其實大部份的事情都是有邏輯可循的,(也有可能是我數學沒學好🥲)如果可以回到學生時期,我一定好好學數學,現在覺得數學蠻好玩的(咦)

其實也不要想什麼時光倒流的事情,現在有遇到能學習數學的機會,就努力去理解吧!


留言
avatar-img
留言分享你的想法!
avatar-img
Galing的腦內劇場
0會員
15內容數
學習AI的新手,在這邊分享學習筆記跟知識,希望文組轉戰AI也可以闖出一片天💪 大學學的是戲劇,擁有服務業12年經驗,擔任銷售顧問;2025.07開始學習python與AI商業應用,目標是讓職涯變得更自由有彈性,做出好玩有趣的東西! 💬喜歡打電動、看動畫、K-pop佛系追星,偶爾可能會出現這些主題的文章。
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文介紹了各種運算符的用法和優先級,包括算術運算符、比較運算符、賦值運算符、邏輯運算符、位元運算符、成員運算符和身份運算符。每種運算符都有詳細的描述和示例程式碼,幫助理解其功能和用法。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
本文詳細介紹了Python中的各種資料型別,包括整數、字串、清單、元組、集合和字典,並提供了相關的操作範例。此外,還解釋了如何在Python中定義和操作變數,包括如何同時對多個變數進行賦值。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
本文將介紹如何用Python繪製群組直條圖。
Thumbnail
NumPy在圖像處理、機器學習、數學和統計學等領域中被廣泛應用。 以下是一些常見的應用場景: 數據處理和分析: NumPy提供了高效的多維數組(nd array)和相應的操作函數,使得對大型數據集進行快速、有效的操作變得容易。
Thumbnail
NumPy在圖像處理、機器學習、數學和統計學等領域中被廣泛應用。 以下是一些常見的應用場景: 數據處理和分析: NumPy提供了高效的多維數組(nd array)和相應的操作函數,使得對大型數據集進行快速、有效的操作變得容易。
Thumbnail
參加Leetcode的30 Days of Pandas挑戰,除了是學習的機會,更是練習熟悉pandas功能的機會。文章分享了挑戰簡介、題目描述、關鍵技術以及參加挑戰的心得。適合新手學習pandas,也可提升熟練度。
Thumbnail
參加Leetcode的30 Days of Pandas挑戰,除了是學習的機會,更是練習熟悉pandas功能的機會。文章分享了挑戰簡介、題目描述、關鍵技術以及參加挑戰的心得。適合新手學習pandas,也可提升熟練度。
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術
Thumbnail
在Python中,數值運算非常直觀,你可以使用標準的數學運算符號進行基本的數值運算。以下是一些基本的數值運算: 進行計算時,按照「先乘除後加減」的規則,並優先計算小括號刮起來的運算式。 print('答案:' ,(1+1)*2) #​答案: 4 復合型態的運算子 指定運算子 = 若是結合算術
Thumbnail
如何用Python為某欄做分類,例如:判斷分數是否及格 
Thumbnail
如何用Python為某欄做分類,例如:判斷分數是否及格 
Thumbnail
如何計算某欄的平均數? 如何計算多個欄位的平均數? 如果想計算不同分組的平均數? 如何用Python計算某欄平均數 利用agg計算平均數 利用groupby建立分組,再用agg計算平均數
Thumbnail
如何計算某欄的平均數? 如何計算多個欄位的平均數? 如果想計算不同分組的平均數? 如何用Python計算某欄平均數 利用agg計算平均數 利用groupby建立分組,再用agg計算平均數
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News