[和小菜雞一起刷題(python)] LeetCode 130 被圍繞的區(qū)域 (Surrounded regions)

原題

給定一個二維的矩陣精绎,包含 'X' 和 'O'(字母 O)闰蛔。

找到所有被 'X' 圍繞的區(qū)域畅涂,并將這些區(qū)域里所有的 'O' 用 'X' 填充宛琅。

示例:

X X X X
X O O X
X X O X
X O X X

調(diào)用你的函數(shù)后,該二叉樹變?yōu)椋?/p>

X X X X
X X X X
X X X X
X O X X

思路

只有和最外層的‘O’不聯(lián)通的‘O’才會被‘X’替代蒋腮。使用深度優(yōu)先標(biāo)記所有和最外層‘O’聯(lián)通的‘O’為‘-’淘捡,再遍歷board將剩余的‘O’改寫成‘X’,‘-’改寫成‘O’池摧。

代碼

class Solution(object):
    __row = None
    __col = None
    def solve(self, board):
        """
        :type board: List[List[str]]
        :rtype: void Do not return anything, modify board in-place instead.
        """
        if not board or not board[0]:
            return
        self.__row = len(board)
        self.__col = len(board[0])
        for j in range(self.__row):
            self.dfs(board, j, 0)
            self.dfs(board, j, self.__col-1)
        for i in range(self.__col):
            self.dfs(board, 0, i)
            self.dfs(board, self.__row-1, i)
        for j in range(self.__row):
            for i in range(self.__col):
                if board[j][i] == 'O':
                    board[j][i] = 'X'
                if board[j][i] == '-':
                    board[j][i] = 'O'

    def dfs(self,board, j, i):
        if 0<=i<self.__col and 0<=j<self.__row and board[j][i] == 'O':
            board[j][i] = '-'
            self.dfs(board,j-1,i)
            self.dfs(board,j+1,i)
            self.dfs(board,j,i-1)
            self.dfs(board,j,i+1)
        else:
            return
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末焦除,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子作彤,更是在濱河造成了極大的恐慌膘魄,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件竭讳,死亡現(xiàn)場離奇詭異创葡,居然都是意外死亡,警方通過查閱死者的電腦和手機绢慢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門灿渴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事骚露〉偶罚” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵荸百,是天一觀的道長闻伶。 經(jīng)常有香客問我,道長够话,這世上最難降的妖魔是什么蓝翰? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮女嘲,結(jié)果婚禮上畜份,老公的妹妹穿的比我還像新娘。我一直安慰自己欣尼,他們只是感情好爆雹,可當(dāng)我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著愕鼓,像睡著了一般钙态。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上菇晃,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天册倒,我揣著相機與錄音,去河邊找鬼磺送。 笑死驻子,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的估灿。 我是一名探鬼主播崇呵,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼馅袁!你這毒婦竟也來了域慷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤汗销,失蹤者是張志新(化名)和其女友劉穎芒粹,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體大溜,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年估脆,在試婚紗的時候發(fā)現(xiàn)自己被綠了钦奋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖付材,靈堂內(nèi)的尸體忽然破棺而出朦拖,到底是詐尸還是另有隱情,我是刑警寧澤厌衔,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布璧帝,位于F島的核電站,受9級特大地震影響富寿,放射性物質(zhì)發(fā)生泄漏睬隶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一页徐、第九天 我趴在偏房一處隱蔽的房頂上張望苏潜。 院中可真熱鬧,春花似錦变勇、人聲如沸恤左。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽飞袋。三九已至,卻和暖如春链患,著一層夾襖步出監(jiān)牢的瞬間巧鸭,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工锣险, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蹄皱,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓芯肤,卻偏偏與公主長得像巷折,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子崖咨,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,465評論 2 348

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