有效的數(shù)獨(dú)

判斷一個(gè)?9x9 的數(shù)獨(dú)是否有效溉知。只需要根據(jù)以下規(guī)則蛋铆,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。

數(shù)字1-9在每一行只能出現(xiàn)一次硼瓣。

數(shù)字1-9在每一列只能出現(xiàn)一次。

數(shù)字1-9在每一個(gè)以粗實(shí)線分隔的3x3宮內(nèi)只能出現(xiàn)一次置谦。

上圖是一個(gè)部分填充的有效的數(shù)獨(dú)堂鲤。

數(shù)獨(dú)部分空格內(nèi)已填入了數(shù)字,空白格用'.'表示媒峡。

示例?1:

輸入

示例?2:

輸入:

輸出:false解釋:除了第一行的第一個(gè)數(shù)字從 5改為8 以外瘟栖,空格內(nèi)其他數(shù)字均與 示例1 相同。? ? 但由于位于左上角的 3x3 宮內(nèi)有兩個(gè) 8 存在, 因此這個(gè)數(shù)獨(dú)是無效的谅阿。

說明:

一個(gè)有效的數(shù)獨(dú)(部分已被填充)不一定是可解的半哟。

只需要根據(jù)以上規(guī)則,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可奔穿。

給定數(shù)獨(dú)序列只包含數(shù)字1-9和字符'.'镜沽。

給定數(shù)獨(dú)永遠(yuǎn)是9x9形式的。


讀題讀題:讀不下去了贱田,什么玩意啊缅茉,沒見過啊,給一個(gè)由列表組成的列表男摧,然后返回真假蔬墩。

有心搞一個(gè)隨機(jī)算法译打,隨機(jī)返回0,1。也就是傳說中的猴子算法拇颅,如果樣例不多完全可行奏司,我甚至用這個(gè)方法解決點(diǎn)觸驗(yàn)證碼,活該找不著工作樟插。

沉下心來思考韵洋,這是基礎(chǔ)題,不會(huì)難的黄锤,首先解決一個(gè)問題搪缨,什么是數(shù)獨(dú)?這個(gè)不知道這題不用做了鸵熟。


數(shù)獨(dú)盤面是個(gè)九宮副编,每一宮又分為九個(gè)小格。在這八十一格中給出一定的已知數(shù)字和解題條件流强,利用邏輯和推理痹届,在其他的空格上填入1-9的數(shù)字。使1-9每個(gè)數(shù)字在每一行打月、每一列和每一宮中都只出現(xiàn)一次队腐,所以又稱“九宮格”。


嗯僵控,9*9的數(shù)獨(dú)香到,那就是9個(gè)宮,題里由數(shù)字和逗號(hào)組成报破,如果全在,那就是123456789千绪,

沒有0充易,九個(gè)數(shù)字,那就是

我們要判斷每一行中現(xiàn)有數(shù)字有沒有重復(fù)的荸型,每一列中數(shù)字有沒有重復(fù)的盹靴,每一宮中有沒有重復(fù)的,每個(gè)列表在都包含數(shù)字和字符點(diǎn)瑞妇,我們要判斷數(shù)字重復(fù)首先就要去除干擾項(xiàng)點(diǎn)稿静,

行判斷:a = 100? ?設(shè)置一個(gè)初始值

????????????????for i in range(len(board):? ?每個(gè)列表是一行

?? ? ? ? ? ? ? ? ? for j in range(len(board[i])):? ?遍歷每一行? 必須要有【:】 每次提取i的一個(gè)復(fù)制,然后對(duì)i操作

? ? ? ? ? ? ? ? ? ? ? ? if board[i][j] == '.':? ? 判斷元素是不是點(diǎn)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?board[i][j] = a

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?a += 1

? ? ?不用去除的方法辕狰,去除后元素位置還都變了改备,將所有點(diǎn)都變成不同的數(shù)字,設(shè)置一個(gè)初始值a = 100蔓倍,每當(dāng)遇到空白符號(hào)就將其變成a,a自增1.

這樣就完成了預(yù)處理悬钳,然后開始判斷盐捷,每一個(gè)區(qū)域都是9個(gè)元素組成,如果有重復(fù)的默勾,那么這個(gè)數(shù)獨(dú)為假碉渡,用set方法去重判斷長度是否變化


for i in range(9):

b = [ ]? 完成一列清空一列

行? ? ? ? ? ? if len(set(board[i]) != 9:

? ? ? ? ? ? ? ? ? ? ? ? rreturn 0

? 列? ? ? ? ? ?for j in range( 9):

? ? ? ? ? ? ? ? ? ? ? ? b.append(board[j][i])? 每一列組成一個(gè)列表

? ? ? ? ? ? ? ? if? len(set(b)) !=9:

? ? ? ? ? ? ? ? ? ? ? ? return 0? ? ? ? ? ? ? ? ? ?

然后是對(duì)每個(gè)宮組成列表,觀察規(guī)律母剥,a00a01a02a10a11a12a20a21a22

那就是橫豎都遍歷0到2滞诺,所有宮都是差3,

橫著數(shù)3個(gè)宮环疼,豎著數(shù)3個(gè)宮习霹,我僵住了,好難啊

找到九個(gè)基準(zhǔn)點(diǎn)?

22,25,28,52,55,58,82,85,88秦爆,沒什么用序愚,做減法更難

00,03等限,06爸吮,30, 33,36望门,60形娇,63,66

居然搞了3層for筹误,都不如手寫九個(gè)列表

3層不行就4層桐早,我真是個(gè)人才



開干


通過470個(gè)樣例,那我大體方法應(yīng)該沒錯(cuò)厨剪,那就是數(shù)獨(dú)還有什么條件沒注意到

觀察一下哄酝,宮三處有兩個(gè)1,然后找宮的問題祷膳,嗯陶衅,NB,for我能寫成if直晨,改正2缶!S禄省U志洹!

四層for循環(huán)能這樣敛摘,看樣子我沒什么問題门烂,學(xué)習(xí)一下別人的。

太長了着撩,感覺就是繁瑣诅福,雖然整體不大匾委,行9個(gè)列表,列九個(gè)列表氓润,宮9個(gè)列表赂乐,一共純手寫也就27個(gè),運(yùn)行時(shí)間可能更短咖气,但構(gòu)造列表的方法是重要的挨措。并且應(yīng)該花時(shí)間深入了解一下字典,看別人用的不少崩溪,沒感覺到有什么優(yōu)勢(shì)浅役,但也要學(xué)習(xí)一下。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末伶唯,一起剝皮案震驚了整個(gè)濱河市觉既,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌乳幸,老刑警劉巖瞪讼,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異粹断,居然都是意外死亡符欠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門瓶埋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來希柿,“玉大人,你說我怎么就攤上這事养筒≡罚” “怎么了?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵晕粪,是天一觀的道長盾戴。 經(jīng)常有香客問我,道長兵多,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任橄仆,我火速辦了婚禮剩膘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘盆顾。我一直安慰自己怠褐,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布您宪。 她就那樣靜靜地躺著奈懒,像睡著了一般奠涌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磷杏,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天溜畅,我揣著相機(jī)與錄音,去河邊找鬼极祸。 笑死慈格,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遥金。 我是一名探鬼主播浴捆,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼稿械!你這毒婦竟也來了选泻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤美莫,失蹤者是張志新(化名)和其女友劉穎页眯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茂嗓,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡餐茵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了述吸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忿族。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖蝌矛,靈堂內(nèi)的尸體忽然破棺而出道批,到底是詐尸還是另有隱情,我是刑警寧澤入撒,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布隆豹,位于F島的核電站,受9級(jí)特大地震影響茅逮,放射性物質(zhì)發(fā)生泄漏璃赡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一献雅、第九天 我趴在偏房一處隱蔽的房頂上張望碉考。 院中可真熱鬧,春花似錦挺身、人聲如沸侯谁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墙贱。三九已至叮姑,卻和暖如春塞绿,著一層夾襖步出監(jiān)牢的瞬間轴合,已是汗流浹背晓殊。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留串纺,地道東北人丽旅。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像纺棺,于是被迫代替她去往敵國和親榄笙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 題目:兩數(shù)之和 描述: 判斷一個(gè)數(shù)獨(dú)是否有效祷蝌,根據(jù):Sudoku Puzzles - The Rules茅撞。(數(shù)獨(dú)規(guī)...
    韋弦Zhy閱讀 980評(píng)論 0 3
  • 一、題目 判斷一個(gè) 9x9 的數(shù)獨(dú)是否有效巨朦。只需要根據(jù)以下規(guī)則米丘,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。 數(shù)字 1-9 在...
    Mage閱讀 824評(píng)論 0 0
  • 題目描述:判斷一個(gè)9x9 的數(shù)獨(dú)是否有效糊啡。只需要根據(jù)以下規(guī)則拄查,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。 數(shù)字1-9在每一行...
    windUtterance閱讀 572評(píng)論 0 0
  • 判斷一個(gè) 9x9 的數(shù)獨(dú)是否有效棚蓄。只需要根據(jù)以下規(guī)則堕扶,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。 數(shù)字 1-9 在每一行只能...
    程序員生涯閱讀 151評(píng)論 0 0
  • 判斷一個(gè) 9x9 的數(shù)獨(dú)是否有效梭依。只需要根據(jù)以下規(guī)則稍算,驗(yàn)證已經(jīng)填入的數(shù)字是否有效即可。 數(shù)字 1-9 在每一行只能...
    尼小摩閱讀 460評(píng)論 0 0