leetcode(36)有效的数独-python

首先记录自己学到的一个知识点。dict.get()
dict.get(key , None)是作为一个字典查找来用的,注意只是查找,不是覆盖原值。查的到就返回key对应的value,查不到就返回default值。
本题就是遍历每一行,每一列,每一个子块,通过字典查找,get一下,如果查到了说明原来就存在即不是有效数独,如果查不到就返回0,说明是有效数独。

class Solution:
    def isValidSudoku(self, board: List[List[str]]) -> bool:
        rows = [{} for i in range(9)]
        columns = [{} for i in range(9)]
        boxes = [{} for i in range(9)]
	
	for i in range(9):
		for j in range(9):
			num = board[i][j]
			if num != ',':
				num = int(num)
				box_index = (i // 3) *3 + j // 3
				
				rows[i][num] = rows[i].get(num , 0)+1
				columns[j][num] = columns[j].get(num , 0) +1
				boxes[box_index][num] = boxes[box_index].get(num , 0)+1
				if rows[i][num] >1 or columns[j][num] >1 or boxes[box_index][num]>1 :
					return False
	return True
				
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值