2
public String longestPrefix(String s) {4
char arr[] = s.toCharArray();5
int lps[] = new int[n];6
for (int i = 1; i < n; i++) {7
int j = lps[i - 1]; // COMPARING ITS i WITH ITS PREV ELEMENT8
while (j > 0 && arr[j] != arr[i]) {9
j = lps[j - 1]; // DEACREASING TILL WE FIND ITS PREFIX WHICH IS EQUAL TO ITS SUFFIX11
if (arr[j] == arr[i]) { // IF ITS PREV IS SAME AS CURRENT THEN INCREAMENT IT14
lps[i] = j; // SAVE WHATEVER THE VALUE IS17
StringBuilder sb = new StringBuilder();18
for (int i = 0; i < j; i++) {28
if(arr[i]==arr[j]){ // IF SAME INCREASE IT30
}else if(j>0){ // ELSE DEACREASE TILL WE ARE NOT FINDING IT35
return s.substring(0,j);