题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
思路
这个题要找到的是最长的公共字串,也就是如果存在的话,随便一个字串的前部都会有公共字串的,那我就随便选一个,来找字串的最长的前缀,将其和每一个字符串的前缀都比较,如果不是就返回上一轮得到的结果。
代码:
class Solution {
public String longestCommonPrefix(String[] strs) {
int length = strs.length;
if(length == 1){
return strs[0];
}
if(length == 0){
return "";
}
int p = 0;
String pre = null;
while(p <= strs[0].length()){
pre = strs[0].substring(0,p);
for(int i = 0 ; i < length; i++){
if(strs[i].startsWith(pre)){
continue;
}else {
return strs[0].substring(0,p - 1);
}
}
p ++;
}
return pre;
}
}