FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpp/algorithms/strings/rabin_carp.cpp at master · AllAlgorithms/cpp · GitHub
Uh oh!
There was an error while loading.
Please reload this page
.
This repository was archived by the owner on Sep 7, 2025. It is now read-only.
AllAlgorithms
/
cpp
Public archive
Notifications
You must be signed in to change notification settings
Fork
339
Star
841
Code
Issues
9
Pull requests
33
Actions
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Security and quality
Insights
Expand file tree
Breadcrumbs
cpp
/
algorithms
/
strings
/
rabin_carp.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
71 lines (57 loc) · 1.14 KB
Breadcrumbs
cpp
/
algorithms
/
strings
/
rabin_carp.cpp
Copy path
File metadata and controls
71 lines (57 loc) · 1.14 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/*
*
* C++ Program to Implement Rabin-Karp Algorithm
*/
#
include
<
iostream
>
#
include
<
cstdio
>
#
include
<
cstring
>
#
include
<
cstdlib
>
using
namespace
std
;
#
define
d
256
/*
*
* Ssearch a substring in a string
*/
void
search
(
char
*pat,
char
*txt,
int
q)
{
int
M =
strlen
(pat);
int
N =
strlen
(txt);
int
i, j;
int
p =
0
;
int
t =
0
;
int
h =
1
;
for
(i =
0
; i < M -
1
; i++)
h = (h * d) % q;
for
(i =
0
; i < M; i++)
{
p = (d * p + pat[i]) % q;
t = (d * t + txt[i]) % q;
}
for
(i =
0
; i <= N - M; i++)
{
if
(p == t)
{
for
(j =
0
; j < M; j++)
{
if
(txt[i + j] != pat[j])
break
;
}
if
(j == M)
{
cout <<
"
Pattern found at index:
"
<< i << endl;
}
}
if
(i < N - M)
{
t = (d * (t - txt[i] * h) + txt[i + M]) % q;
if
(t <
0
)
t = (t + q);
}
}
}
int
main
()
{
char
*txt =
"
This is a sample Testcase
"
;
char
*pat =
"
sam
"
;
int
q =
101
;
search
(pat, txt, q);
return
0
;
}
Back
|
FazBrowse Home
|
New Git URL