编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
输入: [“flower”,“flow”,“flight”]
输出: “fl”
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
我只需要取数组中的第一个字符串,和剩下的字符串从第一个字符开始一个个对比,
因为最长公共前缀不可能比数组中任何一个字符串的长度还长。当剩下的字符串中有比第一个字符串的长度还短的字符串时,循环会抛出数组越界的异常,这个时候直接返回就行了。
class Solution {
public String longestCommonPrefix(String[] strs) {
String str = "";
if(strs.length==0){
return str;
}
if(strs.length==1){
return strs[0];
}
String str0 = strs[0];
int len = str0.length();
int n = 0;
while(n<len){
try{
for(int i=1;i<strs.length;i++){
if(str0.charAt(n)!=strs[i].charAt(n)){
return str;
}
}
}catch (Exception e){
return str;
}
str += str0.charAt(n);
n++;
}
return str;
}
}