Я пытаюсь представить эффективный способ определения объединения символов в наборе строк fixed width
, сгруппированных по индексу. Что-то вроде этого;Алгоритм для поиска объединения нескольких строк, сгруппированных по символьному индексу
s1 = "013965"
s2 = "015935"
s3 = "310012"
В результате в следующем, где существует каждая группа цифр во всех строках с индексом полукокса п:
out = "[03][1][350][90][631][52]"
Я думал сделать это очень наивный способ переборе каждой строки, на каждом индекс, сохраняя промежуточные строки в массиве и затем итерируя через этот массив, чтобы построить выходное значение. Однако мой подход кажется мне очень неэффективным, что слишком далеко от асимптотически оптимального решения.
Обычно лучше всего просто получить функциональность, а затем беспокоиться о производительности после того, как у вас есть рабочее решение. Выполняя вещи, наивный путь часто помогает вам видеть места, где можно легко заработать. – Durandal
Биоинформатика профильных матриц Google. Могу дать вам несколько идей. –
Я думаю, что вы не можете сделать намного лучше, чем наивный способ, потому что обычно вам нужно пройти через все позиции всех строк (если в позиции k все цифры 0-9 уже не были). Представьте, что все ваши строки начинаются с 4, а последний начинается с 5, тогда вам нужно пройти 0-позиции всех строк, чтобы не пропустить последнюю строку 5 (которая отличается от этой позиции, чем все остальные). То же самое относится к каждой позиции. –