Я натолкнулся на задачу найти все вхождения подстроки в другой строке, и мне было интересно, каков будет лучший алгоритм для решения этой проблемы.
В демонстрационных целях я использовал строку «Кот сидел намат "и поиск всех вхождений подстроки" в ".В конечном итоге это должно привести к количеству совпадений 3. Так как я сейчас программирую на Java, первое, что пришло мне в голову, это:
public static void main(String[] args) {
int count=0;
String s = "The cat sat on the mat";
Pattern pattern = Pattern.compile("at");
Matcher matcher = pattern.matcher(s);
while(matcher.find()){
count++;
}
System.out.println("Pattern: "+pattern+" Count: "+count);
}
Почему-то я сомневаюсь, что это оптимальное решениедля этой проблемы.Поэтому, если кто-то знает, как должно выглядеть оптимальное (или, по крайней мере, довольно хорошее) решение ... ответьте!Вы можете опубликовать свой ответ на любом языке, не обязательно Java (хотя это было бы здорово :)).
Большое спасибо!