Programming, Sudoku, Python3, Backtracking, Search.
naive approach shown in the code. However, a smarter choice is to update candidates for all remaining empty spots for each state change ( the remaining empty spots locate at the same row, col, or grid as of the current attempting spot), we are able to make decision global-wisely. If there is a