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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Doksim
57 / 57 / 8
Регистрация: 08.12.2013
Сообщений: 257
#1

Составьте программу bmall.c, осуществляющую поиск всех вхождений подстроки S в строку T - C++

11.01.2014, 17:19. Просмотров 234. Ответов 0
Метки нет (Все метки)

Составьте программу bmall.c, осуществляющую поиск всех вхождений подстроки S в строку T. В программе должен быть реализован алгоритм Бойера-Мура, изменённый таким образом, чтобы при нахождении очередного вхождения S в T алгоритм не завершался, а продолжал сканировать строку T.

алгоритм накопал:
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
int BMsearch(char* str, const char* word)
{
    int N=strlen(str);
    int M=strlen(word);
 
    int* d=new int[256];
    int i;
    for(i=0;i<256;i++)
        d[i]=M;
    
    for(i=0;i<M-1;i++)
        d[(unsigned char)word[i]]=M-i-1;
 
    int result;
    for(i=M;i<=N;i+=d[(unsigned char)str[i-1]])
    {
        int j, k;
        for(j=M-1, k=i-1;j>=0 && str[k]==word[j]; k--, j--);
        if(j<0)
        {
            result=i-M;
            break;
        }
        if(i==N)
        {
            result=-1;
            break;
        }
    }
 
    delete d;
 
    return result;
}
да вот как задачу решить не знаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2014, 17:19
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Составьте программу bmall.c, осуществляющую поиск всех вхождений подстроки S в строку T (C++):

Поиск всех вхождений шаблона в строку - C++
Здравствуйте,хотела к вам обратиться за помощью..в файле t.txt есть строка из символов букв латинского алфавита,длиной до 100000 знаков....

Мне надо сделать поиск последнего вхождения подстроки s1 в строку s(с функцией LastPos, не strstr). В этом коде просто вхождение подстроки в строку. - C++
#include &lt;stdio.h&gt; int count_of_substrings(string s, string s1){ int start = 0; int count = 0; int pos = 0; ...

Подсчет вхождений подстроки в строку - C++
Здравствуйте, помогите найти ошибку, в файле есть строки например S1gfgd S2vsdfvbf S1ffgv необходимо подсчитать сколько раз...

Функция замены всех вхождений подстроки - C++
Необходимо написать функцию типа функции PHP str_replace , которая возвращает строку, в которой все вхождения search заменены на replace....

Найти количество и места вхождений подстроки в строку - C++
Всем привет, есть задача, где нужно найти количество и места вхождений подстроки в строку, но она немного не стандартна, то есть в...

Как подсчитать количество вхождений подстроки в строку - C++
Добрый вечер! Как можно подсчитать количество вхождений строки S2 в строку S1? Допустим: S1= dfsgsffgsrr S2= gs

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.01.2014, 17:19
Привет! Вот еще темы с ответами:

Определить количество вхождений подстроки в заданную строку - C++
Определить количество вхождений подстроки в заданную строку.. Добавлено через 3 часа 57 минут Вообщем сам допер. Если кому...

Указатели: посчитать количество вхождений подстроки в строку - C++
Не могу дописать программу. Заранее извените, ещё не умею вставлять код программы... Выделить код и на панели, где вводите текст,...

Как ускорить работу (поиск вхождений подстроки)? - C++
//подсчет kf int NumberKF(string &amp;P, vector&lt;string&gt; &amp; F, const int f){ int kf =0; for(size_t i = 0; i &lt; f; ++i){ //обход по...

Написать программу, которая выводит позиции всех вхождений гена в геном (поиск гена) - C++
Задан геном некоторого организма (последовательность букв A T G C (аденин, тимин, гуанин, цитозин). Также задан некоторый ген (тоже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru