力ずくのアルゴリズム
STEP1
STEP2
プログラムの図的表現
a
b
a
c
a
b
c
a
b
c
変数の動き
変数「i」の動き
i =
変数「j」の動き
j =
プログラム操作
int naive(char t[], char p[]) {
int i = 0;
int j = 0;
int m = strlen(p);
int n = strlen(t);
while (i < m && j < n) {
if (p[i] == t[j]) {
i++;
j++;
}
else {
j = j - i + 1;
i = 0;
}
}
if(i == m)
return (j - i);
else
return (-1);
}
プログラムの図的表現
a
b
a
c
a
b
c
a
b
c