<p>Design an algorithm to figure out if someone has won a game of tic-tac-toe. Input is a string array of size N x N, including characters "", "X" and "O", where "" represents a empty grid.</p>
<p>The rules of tic-tac-toe are as follows:</p>
<ul>
<li>Players place characters into an empty grid("") in turn.</li>
<li>The first player always place character "O", and the second one place "X".</li>
<li>Players are only allowed to place characters in empty grid. Replacing a character is not allowed.</li>
<li>If there is any row, column or diagonal filled with N same characters, the game ends. The player who place the last charater wins.</li>
<li>When there is no empty grid, the game ends.</li>
<li>If the game ends, players cannot place any character further.</li>
</ul>
<p>If there is any winner, return the character that the winner used. If there's a draw, return "Draw". If the game doesn't end and there is no winner, return "Pending".</p>