ну, я думаю, что идея сравнения выходит за рамки этой проблемы. даже сравнение значения hash / mapped занимает много времени. таким образом, ведение на основе отображения сообщения об ошибке (строки) и последующей проверки может быть возможным способом.
для этого вам нужно найти какую-то идею для сопоставления отдельной строки (это просто обратный метод хеширования, который делает упор на избежание конфликтов), но я думаю, что здесь столкновения для почти одной и той же строки в порядке. поэтому функция отображения должна быть функцией позиционного свойства алфавитов, длины строки.
когда сопоставление выполнено, мы создаем сегмент с группой диапазонов значений 1: (0-10) (или, как в зависимости от значения), группой 2: (10-20) ..... и так далее ... Поскольку мы говорили, что аналогичная строка должна иметь одинаковое значение, аналогичная строка помещается в одно и то же ведро
поэтому, когда новое сообщение встречается, мы отображаем его с помощью числового эквивалента и помещаем в подходящее место.