To post this earlier, I know you already accepted the answer, but you can consider the following.
, , . , ( ), . , , , - ,
a a a -
a a a b
a a a b
a a a b
a b tile (0,3) , .
, , :
(0, 0).parent = 'a'
(0, 1).parent = 'a'
...
(2, 2).parent = 'a'
..
- .
"
, , . O(n), n , 1 n/2 ( , isn ' t - ).
. , O(1).
, :
a a a a a a a a a a a b d d d d d d d d
a a a a a a a a a a a b d d d d d d d d
a a a a a a a a a a a b d d d d d d d d
a a a a a a a a a a a b d d d d d d d d
a a a a a a a a a a a b d d d d d d d d
a a a a a a a a a a a b d d d d d d d d
a a a a a a a a a a a - e e e e e e e e
a a a a a a a a a a a c e e e e e e e e
a a a a a a a a a a a c e e e e e e e e
a a a a a a a a a a a c e e e e e e e e
: 5 , , .
, , .
, ...
a b c d e f g h i j k l m n o p q r s t
A B C D E F G H I J K L M N O P Q R S T
u v w x y z U V W X Y Z 1 2 3 4 5 6 7 8
9 0 ...
...
, , . , , , , .
NxN ( ), , .