编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
Java版
思想 所有的字符串与第一个比较,纵向比较
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs==null || strs.length==0) {
return "";
}
if(strs.length==1) {
return strs[0];
}
int i,j;
char[] cs = strs[0].toCharArray();
StringBuilder sb = new StringBuilder("");
boolean flag = true;
for(i=0;i<cs.length && flag;i++) {
for(j=1; j<strs.length;j++) {
if((i+1)>strs[j].length()) {
flag =false;
break;
}
if(i< strs[j].length() && cs[i]!=strs[j].charAt(i)) {
flag =false;
break;
}
}
if(flag && j==strs.length) {
//System.out.println("i=="+i+"时添加一次");
sb.append(cs[i]);
}
}
return sb.toString();
}
}