编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
思路
先算出字符串数组中各元素中最小的字符串长度,用第一个字符串作为模板来依次判断后面的字符串
class Solution {
public String longestCommonPrefix(String[] strs) {
//如果字符串数组为空,则返回空字符串
if (strs.length==0){
return "";
}
String output = ""; //保存最长公共前缀
int num = strs[0].length(); //需要判断的长度
//找出最短的字符串长度
for (int i=1;i<strs.length;i++){
if (strs[i].length()<num){
num = strs[i].length();
}
}
for (int i=0;i<num;i++){
boolean flag = true; //当前字符是否是公共的
char c = strs[0].charAt(i); //每个前缀字符由第一个字符串提供
for (int j=1;j<strs.length;j++){
if (c!=strs[j].charAt(i)){
flag = false;
break;
}
}
if (flag) output+=c;
else break;
}
return output;
}
}