Patrice T
Цитата:
Как оптимизировать этот цикл для O(n) или O(nlogn)
Правило опытных программистов: во-первых, сделайте это правильно, а затем сделайте это быстро.
Цитата:
например abcdeab ответ для m = 1
Нет никакого способа, чтобы ответ был 1 !
К примеру есть 2 матча
First match is abcdeabb
^ ^
and second match is abcdeabb
^ ^
Чтобы получить ответ = 1
the match is abcdeabb
^^
а вот это
второй и
третий возникновение б.
Ваш алгоритм верен, если буква, появившаяся не более 2 раз, является строкой.
Вместо того чтобы проверять букву с остатком строки, Мой первый подход состоял бы в том, чтобы проверить букву С началом строки, чтобы убедиться, что буква проверяется с первым вхождением.
Я не думаю, что достижение вашей цели возможно.
Stefan_Lang
Согласовано по всем счетам, кроме последнего: вы можете сделать это в O(N) (на самом деле O(N+C), см. Решение 2)