Valid Sudoku

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

First define a validate function:

def validate(group: List[str]):
    numbers = list(filter(lambda x: x != '.', group))
    return Counter(numbers) == Counter(set(numbers))

Then validate each row, col, and box.

if not (all(validate))
for row in board:
    if not validate(row):
        return False
for j in range(9):
    col = [board[i][j] for i in range(9)]
    if not validate(col):
        return False
for x in range(0, 9, 3):
    for y in range(0, 9, 3):
        box = [board[x + i][y + j] for i in range(3) for j in range(3)]
        if not validate(box):
            return False
return True

A more succinct functional solution:

return all(
    [
        all(validate(row) for row in board),
        all(validate([board[i][j] for i in range(9)]) for j in range(9)),
        all(
            validate(
                [board[x + i][y + j] for i in range(3) for j in range(3)]
            )
            for x in range(0, 9, 3)
            for y in range(0, 9, 3)
        )
    ]
)