Skip to main content

LPS(Longest Prefix Which Is Also Suffix) Array Generation Using Java

import java.util.*;




//Longest Prefix Which Is Also Suffix Which Is Used To Found a Pattern Through
Avoid Repeated Characters in Given String. We Will Discuss KMP ALGORITHM TO
Find A Pattern In Given String Latter.
class lbs{

public static void main(String[] args){

Scanner in=new Scanner(System.in);

//Get Input From User
String s=in.nextLine();

//Convert String Into Char Array
char[] ch=s.toCharArray();

int n=s.length();

int[] lbsArr=new int[n];

int j=0,i=1;

lbsArr[0]=0;

//LPS ARRAY ALGORITHM

/*
i=1;
j=0;
string s="aaab"

while i<n
if s[i]==s[j]:
lpsArr[i]=j;
j=j+1
i=i+1
else:
if j==0:
lbsArr[j]=0
i=i+1
else:
j=lbsArr[j-1];
lbsArr[i]=j

*/

while(i<n){
if(ch[j]==ch[i]){
lbsArr[i]=++j;
i+=1;
}
else{
if(j==0){
lbsArr[i]=j;
i+=1;
}
else{
j=lbsArr[j-1];
lbsArr[i]=j;
}
}
}

for(int k=0;k<n;k++){
System.out.print(lbsArr[k]);
}
}

}

output 1:
aaaa
0123

output 2:
abcd
0000

output 3:
aabaacaabaa
01012012345

Comments

Post a Comment

Popular posts from this blog

Class is a collection of similar objects. Which have common properties

Class is a collection of similar objects. Which have common properties. Syntax class class_name {        //member functions and variables. } How to create a objects for class class_name c=new class_name; We can access the member variable and member methods using dot operator. c.member_function(); Eg : class bike { void fun() { System.out.println("member method"); } public static void main(String[] args) { bike B=new bike(); B.fun(); } } output member method