Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Найти все вхождения строки P в текст T, используя наивный алгоритм поиска - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создать массив экземпляра класса http://www.cyberforum.ru/cpp-beginners/thread1252509.html
Всем привет, есть класс, конструктор которого, рисует квадратик на плоскости. Мне нужно создавать в одной точке плоскости много квадратиков, с каким либо интервалом во времени , и потом ( после...
C++ Как перенести программу для работы на Visual Studio 2012? Есть два рабочих кода, которые прекрасно работают под VS2010, но при этом не компилирует в VS2012. Вроде как все дело в библиотеках и в командах ввода/вывода, но когда я пытался менять у меня не все... http://www.cyberforum.ru/cpp-beginners/thread1252508.html
С помощью алгоритма вставки, нужно сортировать парные числа массива в порядке возрастания C++
Приветствую! Нужно написать программу которая из текстового файла будет считывать в массив числа (например, 2 6 4 13 15 29). После этого, с помощью алгоритма вставки, нужно сортировать парные...
C++ Вывести значения переменных в столбик, установить точность, ширину поля и зафиксировать
Напишите инструкцию ввода и вывода значений чисел 123, 45.080, 2345566.1 типа float с разным количеством цифр целой и дробной части для каждого; Выведите значения переменных из предыдущего пункта в...
C++ Написать программу форматированного вывода в console http://www.cyberforum.ru/cpp-beginners/thread1252497.html
Напишите инструкцию ввода и вывода значений чисел 123, 45.080, 2345566.1 типа float с разным количеством цифр целой и дробной части для каждого; Выведите значения переменных из предыдущего пункта в...
C++ Решить нелинейное уравнение Подкинули в универе такую задачку,решить нелинейное уравнение типа: ctgx-x\4=0. С виду вроде просто,но вот как это запихнуть в код и с какой стороны подступиться-не понимаю,помогите,пожалуйста! подробнее

Показать сообщение отдельно
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16701 / 6623 / 433
Регистрация: 12.06.2012
Сообщений: 19,880
Завершенные тесты: 1
15.09.2014, 11:59
Замените функцию на такую
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
std::vector<int> findMatches(std::string p, std::string t)
{
    size_t m = p.size() - 1;
    size_t n = t.size();
    std::vector<int> result;
    
    for(size_t i = 0, j = 0; i < n; ++i)
    {
        if(t[i] == p[j])
        {
            while(++i < n && ++j != m && t[i] == p[j])
                ;
            if(j == m)
            {
                result.push_back(i-m);
                j = 0;
            }
        }
    }
    return result;
}
Добавлено через 1 минуту
taeas1995, а разве в "ааааа" должно быть четыре вхождения "аа", а не два?

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
std::vector<int> findMatches(std::string p, std::string t)
{
    size_t m = p.size() - 1;
    size_t n = t.size();
    std::vector<int> result;
    
    for(size_t i = 0, j = 0; i < n; ++i)
    {
        if(t[i] == p[j])
        {
            while(++i < n && ++j != m && t[i] == p[j])
                ;
            if(j == m)
            {
                result.push_back(i -= m);
                j = 0;
            }
        }
    }
    return result;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru