130被圍繞的區域

来源:https://www.cnblogs.com/cong12586/archive/2020/07/29/13399237.html
-Advertisement-
Play Games

from typing import List# 這道題看了大佬寫的代碼,經過自己的理解寫出來了。# 從最外圍的四周找有沒有為O的,如果有的話就進入深搜函數,然後深搜遍歷# 判斷上下左右的位置是否為Oclass Solution: def solve(self, board: List[List[s ...


from typing import List
# 這道題看了大佬寫的代碼,經過自己的理解寫出來了。
# 從最外圍的四周找有沒有為O的,如果有的話就進入深搜函數,然後深搜遍歷
# 判斷上下左右的位置是否為O
class Solution:
def solve(self, board: List[List[str]]) -> None:
# 判斷是否為空列表
if not board or not board[0] : return
# 求出列表的有幾行和有幾列
row = len(board)
col = len(board[0])
# 深搜,當邊界為O進行判斷
def dfs(index1,index2):
# 首先將O變成B,之後再變回來。
board[index1][index2] = 'B'
# 遍歷上下左右
for x,y in [(0,1),(0,-1),(1,0),(-1,0)]:
print(x,y)
# 註意這裡不能改變index1和index2的值,因為後邊還要用。
i = index1 + x
j = index2 + y
# 如果當前位置的上下左右不出邊界而且位置上為O就,進行深搜
# 註意這裡邊界上邊不能判斷,
if 1 <= i < row and 1 <= j < col and board[i][j] == "O":
print("111")
dfs(i,j)
# 判斷第一行和最後一行上的邊界值
for index1 in range(col):
if board[0][index1] == "O":
dfs(0,index1)
if board[row - 1][index1] == 'O':
dfs(row - 1,index1)
# 判斷第一列和最後一列的邊界值
for index2 in range(row):
if board[index2][0] == "O":
dfs(index2,0)
if board[index2][col - 1] == 'O':
dfs(index2,col - 1)
# 將O全部改寫成X,將之前寫的B也改寫成O
for index1 in range(row):
for index2 in range(col):
if board[index1][index2] == "O":
board[index1][index2] = "X"
if board[index1][index2] == "B":
board[index1][index2] = 'O'

A = Solution()
print(A.solve([["O","X","X","O","X"],["X","O","O","X","O"],["X","O","X","O","X"],["O","X","O","O","O"],["X","X","O","X","O"]])
)

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本篇要學習的內容和知識結構概覽 多態性 編譯時的多態性稱為靜態聯編. 當調用重載函數時, 在編譯期就確定下來調用哪個函數. 運行時的多態性稱為動態聯編. 在運行時才能確定調用哪個函數, 由虛函數來支持. 靜態聯編中的賦值相容性及名字支配規律 派生一個類的原因並非總是為了添加新的成員或成員函數, 有時 ...
  • 摘要 Stream 是對集合對象功能的增強,它專註於對集合對象進行各種非常便利、高效的聚合操作,或者大批量數據操作。通常我們需要多行代碼才能完成的操作,藉助於Stream流式處理可以很簡單的實現。 Stream 不是集合元素,它不是數據結構並不保存數據,它是有關演算法和計算的。 創建Steam流 調用 ...
  • 此pdf文為pycharm最全使用教材,由山在嶺就在博主花了一周多時間嘔心創作~ 點擊此處下載提取碼:fdno ...
  • 點擊此處進入下載地址提取碼:67ju 目 錄第一部分 分類 第 1 章 機器學習基礎 .....................................21.1 何謂機器學習 ............................................3 1.1.1 感測器和海量 ...
  • 阿裡雲購買伺服器 購買雲伺服器,伺服器版本選擇centos 7.5版本,之後在控制台打開實例 2,設置root密碼 如果你購買時沒有設置root密碼 這裡需要重置下 下載軟體並安裝寶塔 本地下載putty 鏈接工具 填入你的公網ip 然後open 賬號填root 密碼就是剛纔設置的那個密碼 然後執行 ...
  • import concurrent import requests; from concurrent.futures import ThreadPoolExecutor import os; import parsel; def send_request(url): header = { "user ...
  • import requests; import re; import os; import parsel; 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537. ...
  • import requests; import re; import os; # 1.請求網頁 header = { "user-agent":'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, li ...
一周排行
    -Advertisement-
    Play Games
  • 一:背景 準備開個系列來聊一下 PerfView 這款工具,熟悉我的朋友都知道我喜歡用 WinDbg,這東西雖然很牛,但也不是萬能的,也有一些場景他解決不了或者很難解決,這時候藉助一些其他的工具來輔助,是一個很不錯的主意。 很多朋友喜歡在項目中以記錄日誌的方式來監控項目的流轉情況,其實 CoreCL ...
  • 什麼是工業物聯網網關 工業物聯網網關是連接工業場景本地設備(如PLC、掃碼槍、機器人、數控機床等)與遠端業務系統(如SCADA系統、MES系統等)之間的硬體設備或軟體程式。終端設備和遠端業務系統之間的所有數據通信都通過工業物聯網網關來實現。 我們為什麼需要工業物聯網網關 因為從事汽車工業行業,在我們 ...
  • 在.NET Core的依賴註入框架中,服務註冊的信息將會被封裝成ServiceDescriptor對象,而這些對象都會存儲在IServiceCollection介面類型表示的集合中,另外,IServiceCollection介面類型預設使用的實現類型為ServiceCollection。這樣來看,實 ...
  • 如果業務邏輯比較簡單的話,一條主管道就夠了,確實用不到分支管道。不過當業務邏輯比較複雜的時候,有時候我們可能希望根據情況的不同使用特殊的一組中間件來處理 HttpContext。這種情況下如果只用一條管道,處理起來會非常麻煩和混亂。此時就可以使用 Map/MapWhen/UseWhen 建立一個分支 ...
  • .NET nanoFramework 安裝教程 準備材料​ esp32單片機(支持wifi藍牙) 安卓數據線(需要支持傳輸) 註意!請先安裝esp32驅動程式​ ESP32驅動鏈接 安裝 .NET nanoFramework固件快閃記憶體​ 安裝工具 dotnet tool install -g nano ...
  • Redis是大規模互聯網應用常用的記憶體高速緩存資料庫,它的讀寫速度非常快,據官方 Bench-mark的數據,它讀的速度能到11萬次/秒,寫的速度是8.1萬次/秒。 1. 認識Spring Cache 在很多應用場景中通常是獲取前後相同或更新不頻繁的數據,比如訪問產品信息數據、網頁數據。如果沒有使用 ...
  • 1、應用場景 1.1 kafka場景 ​ Kafka最初是由LinkedIn公司採用Scala語言開發,基於ZooKeeper,現在已經捐獻給了Apache基金會。目前Kafka已經定位為一個分散式流式處理平臺,它以 高吞吐、可持久化、可水平擴展、支持流處理等多種特性而被廣泛應用。 ​ Apache ...
  • Python帶我起飛——入門、進階、商業實戰_ 免費下載地址 內容簡介 · · · · · · 《Python帶我起飛——入門、進階、商業實戰》針對Python 3.5 以上版本,採用“理論+實踐”的形式編寫,通過大量的實例(共42 個),全面而深入地講解“Python 基礎語法”和“Python ...
  • 原文連接:https://www.zhoubotong.site/post/67.html Go 標準庫的net/url包提供的兩個函可以直接檢查URL合法性,不需要手動去正則匹配校驗。 下麵可以直接使用ParseRequestURI()函數解析URL,當然這個只會驗證url格式,至於功能變數名稱是否存在或 ...
  • 多商戶商城系統,也稱為B2B2C(BBC)平臺電商模式多商家商城系統。可以快速幫助企業搭建類似拼多多/京東/天貓/淘寶的綜合商城。 多商戶商城系統支持商家入駐加盟,同時滿足平臺自營、旗艦店等多種經營方式。平臺可以通過收取商家入駐費,訂單交易服務費,提現手續費,簡訊通道費等多手段方式,實現整體盈利。 ...