← Усі приклади

Пошук підрядка

C++ Алгоритми

вкладені цикли

Блок-схема за ДСТУ

ТакНіТакНіПочатокВвід s, pn = s.length()m = p.length()i = 0, i + m <= n, i++j = 0j < m && s[i + j] == p[j]j++j == mПовернути iКінецьПовернути -1КінецьРисунок 1 — indexOf

Вихідний код

int indexOf(string s, string p) {
    int n = s.length();
    int m = p.length();
    for (int i = 0; i + m <= n; i++) {
        int j = 0;
        while (j < m && s[i + j] == p[j]) {
            j++;
        }
        if (j == m) {
            return i;
        }
    }
    return -1;
}