Я пытаюсь написать метод поиска подстроки, который получает количество числа шаблонов, отображаемых в строке. Мой вопрос должен иметь дело с логикой множества для циклов, которые у меня есть, и операторов if. Если входная строка AABABAA, а шаблон ввода - AA, он должен перебирать и возвращать счет 2. Любые предложения, которые помогут мне закончить мой код?Brute force pattern search java
public int getCount(String pattern){
for (int i=0; i< this.strand.length()-pattern.length(); i++){
for (int k=0; k<pattern.length(); k++){
if (this.strand.charAt(i) == pattern.charAt(k)){
for(int j=1; j<pattern.length()-1; j++){
if (this.strand.charAt(j+i) == pattern.charAt(j)){
if(j==pattern.length()){
Count++;
}
}
else{
break;
}
}
}
else if (this.strand.charAt(i)!=pattern.charAt(k)){
break;
}
}
}
return Count;
}
Мне интересно, почему вы нуждаясь три для-петли. Если я правильно прочитаю ваш вопрос, это можно сделать с помощью одного. –
@ChrisForrence Если он не может использовать 'substring' или сравнивать строки, то я думаю, ему нужны два цикла, если он сначала не создает [DFA] (http://en.wikipedia.org/wiki/Deterministic_finite_automaton) ... или делает что-то сложное с его индексами. – ajb
Я не хочу использовать подстроки, потому что мне в конечном итоге придется использовать другие переменные подстановки, поэтому на данный момент только для циклов – user2876613