# Using bit arrays to solve crossword puzzles

I have read Crossword Puzzles and Constraint Satisfaction by Connor, Duchi and Lo and I am trying to implement this variation of crossword solving algorithm. I can't understand the bit array data structure described on page 3, under "Lexicon". Could someone please give me an example?

PS: I have already implemented an efficient crossword solving algorithm but now I want to get even more serious in this difficult task.

Our lexicon contains up to $$N = 2000$$ words of each length. For each length, for each position in the word, and for each possible letter, we store the set of words of given length in which the letter at the given position is the given letter.
For example, suppose that there are 100 words of length 5. We identify these words with the numbers 1,2,...,100. There is an array of length 100 in which the $$i$$'th value is 1 if the $$i$$'th word starts with a, and 0 otherwise. There is another array of length 100 in which the $$i$$'th value is 1 if the second letter of the $$i$$'th word is b, and 0 otherwise. We can take these two arrays and compute their entrywise AND: $$\begin{array}{l|l} \text{First array} & 01110010\ldots \\ \text{Second array} & 11010011\ldots \\\hline \text{Result} & 01010010\ldots \end{array}$$ The $$i$$'th value of the new array is 1 iff the $$i$$'th word starts with ab.