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

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

Войти
Регистрация
Восстановить пароль
 
Uz
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 23
#1

Реализация алгоритма Рабина-Карпа для двух однонаправленных линейных списков - C++

08.07.2012, 11:42. Просмотров 668. Ответов 1
Метки нет (Все метки)

Здравствуйте! Собственно, вопрос находится в заголовке: у меня описано два списка, надо этим алгоритмом найти количество вхождений первого списка во второй. Прошу о помощи, заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2012, 11:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Реализация алгоритма Рабина-Карпа для двух однонаправленных линейных списков (C++):

Сравнение элементов двух однонаправленных линейных списков - C++
А как сравнить элементы двух списков? Чтобы при совпадении элементов счётчик прибавлял единичку? Если список вот так задан: #include...

Организовать представление множеств в виде линейных однонаправленных списков - C++
Даны два множества А и В. Организовать представление множеств в виде линейных однонаправленных списков. Мощность множеств и элементы...

Как из двух однонаправленных списков создать третий, который состоит из нечетных элементов предыдущих двух? - C++
ребят,подскажите пожалуйста как из двух однонаправленных списка создать третий который состоит из нечетных елементов преведущих двух....

Из двух однонаправленных списков сформировать новый список - C++
Из двух однонаправленных списков сформировать новый список, следующим образом: сначала записать четные по индексу элементы первого списка,...

Алгоритм Рабина-Карпа - C++
Всем доброго времени суток! Имеется код Алгоритма Рабина-Карпа, поиск подстроки в строке. Сегодня сдавать, боюсь сам полностью не...

Алгоритм Рабина-Карпа, нужны комментарии к коду - C++
Привет всем. Столкнулся с задачей разобраться с кодом алгоритма рабина карпа. Объясните пожалуйста как в данной программе он работает. ...

1
Uz
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 23
09.07.2012, 17:39  [ТС] #2
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
string s, t; // входные данные
 
// считаем все степени p
const int p = 31;
vector<long long> p_pow (max (s.length(), t.length()));
p_pow[0] = 1;
for (size_t i=1; i<p_pow.size(); ++i)
    p_pow[i] = p_pow[i-1] * p;
 
// считаем хэши от всех префиксов строки T
vector<long long> h (t.length());
for (size_t i=0; i<t.length(); ++i)
{
    h[i] = (t[i] - 'a' + 1) * p_pow[i];
    if (i)  h[i] += h[i-1];
}
 
// считаем хэш от строки S
long long h_s = 0;
for (size_t i=0; i<s.length(); ++i)
    h_s += (s[i] - 'a' + 1) * p_pow[i];
 
// перебираем все подстроки T длины |S| и сравниваем их
for (size_t i = 0; i + s.length() - 1 < t.length(); ++i)
{
    long long cur_h = h[i+s.length()-1];
    if (i)  cur_h -= h[i-1];
    // приводим хэши к одной степени и сравниваем
    if (cur_h == h_s * p_pow[i])
        cout << i << ' ';
}
Как вот то же самое, только для двух однонаправленных списков реализовать? Помогите, пожалуйста.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.07.2012, 17:39
Привет! Вот еще темы с ответами:

Усовершенствовать алгоритм Рабина-Карпа, чтобы он искал символьную подматрицу в символьной матрице - C++
У меня есть этот алгоритм. Кто знает, как усовершенствовать его, чтобы он искал символьную подматрицу m * m в символьной матрицы n * n, при...

Реализация теста Рабина-Миллера для чисел порядка 2^512 - C++
Необходимо реализовать тест для таких вот БОЛЬШИХ чисел. Но с арифметикой больших чисел на C\C++ не сталкивался поэтому вопрос: 1. Какие...

Реализация алгоритма сортировки для любых типов данных - C++
Помогите пожалуйста переделать реализацию сортировки так, чтобы она могла работать с любыми типами данных(int, double, etc) Т.е. могла...

Сравнить элементы линейных списков - C++
написать процедуру, которая по 2-м линейным спискам L1 и L2 формирует новый список, включая в него по одному разу элементы которые входят...


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

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

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