Skip to content

Latest commit

 

History

History
30 lines (25 loc) · 829 Bytes

36.md

File metadata and controls

30 lines (25 loc) · 829 Bytes

题目地址

https://leetcode-cn.com/problems/valid-sudoku/

解答

def isValidSudoku(board):
    """
        有效的数独

        用hashmap,先行列遍历,然后3*3遍历
    """
    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