code: private static char[] buildTable() {
      char[] table = new char[26];
      for (int ix = 0; ix < table.length; ix++)
        table[ix] = '0';
      table['B' - 'A'] = '1';
      table['P' - 'A'] = '1';
      table['F' - 'A'] = '1';
      table['V' - 'A'] = '1';
      table['C' - 'A'] = '2';
      table['S' - 'A'] = '2';
      table['K' - 'A'] = '2';
      table['G' - 'A'] = '2';
      table['J' - 'A'] = '2';
      table['Q' - 'A'] = '2';
      table['X' - 'A'] = '2';
      table['Z' - 'A'] = '2';
      table['D' - 'A'] = '3';
      table['T' - 'A'] = '3';
      table['L' - 'A'] = '4';
      table['M' - 'A'] = '5';
      table['N' - 'A'] = '5';
      table['R' - 'A'] = '6';
      return table;
    }
docs: Builds the mapping table.