The longest common prefix is a problem in that we can find the prefix in every string of the array.
str = [ "flower", "flow", "flight" ]
output: fl (every string in the array contains the "fl" as its prefix.
public class LogestCommonPrefix {
public static void main(String[] args) {
String[] strs = {"flower","flow","flight"};
System.out.println(Arrays.toString(strs));
int len = strs.length;
String answer="";
if(len==1){
answer = strs[0];
}
Arrays.sort(strs);
int minValue = Math.min(strs[0].length(), strs[len-1].length());
int i=0;
while(i<minValue && strs[0].charAt(i) == strs[len-1].charAt(i)){
i++;
}
answer = strs[0].substring(0,i);
System.out.println("Common prefix: "+answer);
}
}
[flower, flow, flight]
Common prefix: fl
creating external method (OOPS):
public class LogestCommonPrefix {
public static void main(String[] args) {
String[] strs = {"flower","flow","flight"};
System.out.println(Arrays.toString(strs));
System.out.println("Common prefix: "+longestCommonPrefix(strs));
}
public static String longestCommonPrefix(String[] strs)
{
int len = strs.length;
if(len==0){
return "";
}
if(len==1){
return strs[0];
}
Arrays.sort(strs);
int minValue = Math.min(strs[0].length(), strs[len-1].length());
int i=0;
while(i<minValue && strs[0].charAt(i) == strs[len-1].charAt(i)){
i++;
}
String str = strs[0].substring(0,i);
return str;
}
}
[flower, flow, flight]
Common prefix: fl
Thank you for reading :)