import
java.util.Arrays;
public
class
Main {
static
final
int
max =
4
;
static
int
[] count =
new
int
[max];
static
String str, sub;
public
static
void
main(String[] args) {
int
sum =
0
;
final
int
[] x =
new
int
[max];
for
(
int
a =
0
; a < max; a++)
x[a] = a;
str =
"prrrogramisprrrogramming"
;
sub =
"rr"
;
System.out.println(
"Enter the main string: "
+ str);
System.out.println(
"Enter the sequence to search: "
+ sub);
Thread[] tid =
new
Thread[max];
for
(
int
i =
0
; i < max; i++) {
final
int
value = i;
tid[i] =
new
Thread(() -> str_seq_count(x[value]));
tid[i].start();
}
for
(
int
i =
0
; i < max; i++) {
try
{
tid[i].join();
}
catch
(InterruptedException e) {
e.printStackTrace();
}
}
for
(
int
i =
0
; i < max; i++)
sum = sum + count[i];
System.out.println(
"Frequency of substring: "
+ sum);
}
static
void
str_seq_count(
int
value) {
int
i, j, k, l1, l2, flag;
l1 = str.length();
l2 = sub.length();
for
(i =
0
+ value; i < l1; i = i + max) {
flag =
0
;
k = i;
for
(j =
0
; j < l2; j++) {
if
(sub.charAt(j) == str.charAt(k))
k++;
else
{
flag =
1
;
break
;
}
}
if
(flag ==
0
)
count[value] +=
1
;
}
}
}