编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
先将第一个字符串(称它为匹配串)与第二个字符串进行比较,如果匹配串在第二个字符串中出现过,则比较第下一个字符串,如果匹配串在此字符串中没有出现过,就将匹配串最后一个字母截去,继续比较。直到最后一个字符串。当匹配串为空时,说明不存在公共前缀。
public class Main{
public static void main(String[] args) {
String[] arr=new String[]{"ababc","abadrf","abacf"};
String res=longestCommonPrefix(arr);
System.out.println(res);
}
public static String longestCommonPrefix(String[] strs){
String str=strs[0];
for(int i=1;i<strs.length;i++){
while(strs[i].indexOf(str)!=0){
str=str.substring(0,str.length()-1);
if(str.isEmpty()){
return "";
}
}
}
return str;
}
}