NO36.有效的字符

复制代码
#暴力破解
# 数字 1-9 在每一行只能出现一次。
# 数字 1-9 在每一列只能出现一次。
# 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次
class Solution:
    def isValidSudoku(self, board: List[List[str]]) -> bool:
#求每行列的个数可求不为3的情况
        col = len(board[0])
        row = len(board)
#判断每行有无相同的值
        for i in range(row):
            num_set = set() #构建集合,判断添加有无该值
            for j in range(col):
                if board[i][j].isnumeric()==False:
                    continue
                elif board[i][j] not in num_set:
                    num_set.add(board[i][j])
                else:
                    return False
#判断每行有无相同的值(很相似)
        for i in range(col):
            num_set = set() #构建集合,判断添加有无该值
            for j in range(row):
                if board[j][i].isnumeric()==False:
                    continue
                elif board[j][i] not in num_set:
                    num_set.add(board[j][i])
                else:
                    return False
#判断每一个粗实线有无相同的值,找规律发现为每3个一跳
        for i in range(0, row, 3):
            for j in range(0, col, 3):
                num_set = set()
                for x in range(i, i+3):
                    for y in range(j, j+3):
                        if board[x][y].isnumeric() == False:
                            continue
                        elif board[x][y] not in num_set:
                            num_set.add(board[x][y])
                        else:
                            return False     
#其他情况返回正确
        return True
复制代码

 

 
posted @   是冰美式诶  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示