а зачем делать матрицу 256 на 256
, ведь нам известно сколько в строке рназных символов. Смотри пример выше: матрица 3 на 3.
Во-первых, откуда мы это знаем заранее, на момент написания программы?
При таком подходе мы сначала должны проанализировать строку, выудить из нее уникальные символы, а только затем уже строить матрицу по их количеству.
Во-вторых, нет гарантии, что коды символов идут подряд, а не вразброс. Тогда нам придется строить дополнительно таблицу соответствия кода символа номеру строки/столбца в матрице и обращаться к элементам матрицы косвенно.
Наилучший вариант, конечно, - тот, который указал
SlavaI, т.е. использование ассоциативного массива. К тому же он будет работать и в случае, если понадобится, скажем, считать комбинации по 3 символа и более. Но раз уж в условии задачи сказано, что это должна быть именно матрица, его пришлось отложить.