Форум программистов, компьютерный форум 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
16697 / 6623 / 431
Регистрация: 12.06.2012
Сообщений: 19,875
Завершенные тесты: 1
07.09.2014, 21:41
Как вариант (хоть не совсем следуя распространенному варианту) можно так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <vector>
 
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)
    {
        while(i < n && j != m && t[i] == p[j])
        {
            ++i;
            ++j;
        }
 
        if(j == m)
        {
            result.push_back(i-m);
            j = 0;
        }
    }
    return result;
}
 
int main(int argc, char *argv[])
{
    std::string p = "abc";
    std::string t = "abcaaaabcddabcdd";
    
    std::vector<int> result = findMatches(p, t);
 
    std::cout << std::endl;
    for(std::vector<int>::const_iterator it = result.begin(); it != result.end(); ++it)
        std::cout << *it << std::endl;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru