Write a program to solve a Sudoku puzzle by filling the empty cells. A sudoku solution must satisfy all of the following rules:
- Each of the digits 1-9 must occur exactly once in each row.
- Each of the digits 1-9 must occur exactly once in each column.
- Each of the digits 1-9 must occur exactly once in each of the 9 3x3 sub-boxes.
The '.' character indicates empty cells.
- A 9x9 board with characters from '1'-'9' and '.'.
Input: A partially filled 9x9 Sudoku grid
Output: The completed valid Sudoku grid