Olá pessoal,
Estava procurando e não encontrei uma resposta para a falha que esta ocorrendo. Estou tentando fazer um programa que tem o cógido a baixo, trate-se do algoritmo de Knuth-Morris-Pratt. Eu praticamente só copiei o arquivo, mas esta dando um erro na funcao, public int[]calculaNext(String trecho), onde eu deveria retornar um vetor de int. Se alguém puder compilar para ver se o erro nao é só no meu computador. Grato
O erro é:
C:\Users\Usuario\Desktop\Documents\NetBeansProjects\TestaEntrada\src\testaentrada\KMP.java:66: missing return statement
}
1 error
FALHA NA CONSTRUÇÃO (tempo total: 0 segundos)
public class KMP {
public int kmpAlgoritmo(String texto, String trecho) {
int n = texto.length();
int m = trecho.length();
int[] next = calculaNext(trecho);
int i = 0;
int j = 0;
while (i < n) {
if (trecho.charAt(j) == texto.charAt(i)) {
if (j == m - 1) {
return (i - m + 1);
}
i++;
j++;
} else {
if (j > 0) {
j = next[j - 1];
} else {
i++;
}
}
}
return -1;
}
public int[]calculaNext(String trecho)
{ // <- nesta parte aparece o erro, missing return statement, como se estivesse faltando um parenteses
int[] next = new int[trecho.length()];
next[0] = 0;
int m = trecho.length();
int j = 0;
int i = 1;
while (i < m) {
if (trecho.charAt(j) == trecho.charAt(i)) {
next[i] = j + 1;
i++;
j++;
} else {
if (j > 0) {
j = next[j - 1];
} else {
next[i] = 0;
i++;
}
}
return next;
}
}
}