Re: [閒聊] 每日leetcode
看板Marginalman作者JerryChungYC (JerryChung)時間1年前 (2024/08/09 10:43)推噓1(1推 0噓 0→)留言1則, 1人參與討論串680/1548 (看更多)
https://leetcode.com/problems/magic-squares-in-grid
840. Magic Squares In Grid
找出由1~9組成的3*3矩陣且每個行、列、斜都是15的數量
Python Code:
class Solution:
def numMagicSquaresInside(self, grid: List[List[int]]) -> int:
result = 0
check = {1, 2, 3, 4, 5, 6, 7, 8, 9}
for i, v in enumerate(grid):
idx = 0
while 5 in v[idx+1:] and i not in {0, len(grid)-1}:
idx = v.index(5, idx+1)
if idx in {0, len(v)-1}:
continue
if not set([grid[i-1][idx],grid[i-1][idx-1],grid[i-1][idx+1],
grid[i+1][idx],grid[i+1][idx-1],grid[i+1][idx+1],
v[idx], v[idx-1], v[idx+1]]) == check:
continue
if all([
sum(v[idx-1:idx+2]) == 15,
sum(grid[i-1][idx-1:idx+2]) == 15,
sum(grid[i+1][idx-1:idx+2]) == 15,
sum([v[idx], grid[i-1][idx], grid[i+1][idx]]) == 15,
sum([v[idx-1], grid[i-1][idx-1], grid[i+1][idx-1]]) == 15,
sum([v[idx+1], grid[i-1][idx+1], grid[i+1][idx+1]]) == 15,
sum([grid[i-1][idx-1], v[idx], grid[i+1][idx+1]]) == 15,
sum([grid[i+1][idx-1], v[idx], grid[i-1][idx+1]]) == 15
]):
result += 1
return result
照直覺寫的 懶得改了
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.251.52.67 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1723171428.A.6CF.html
推
08/09 10:47,
1年前
, 1F
08/09 10:47, 1F
討論串 (同標題文章)
完整討論串 (本文為第 680 之 1548 篇):