14. 最长公共前缀

题目:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
解法:纵向扫描
思路:每次扫描每个字符串的某一列,判断是否都相等,都相等则加入到结果中,否则返回当前结果
代码:
class Solution {
public String longestCommonPrefix(String[] strs) {
int len = strs.length;
if(len0){
return "";
}
if(len
1){
return strs[0];
}
int minLen = Integer.MAX_VALUE;
for(int i=0;i<len;i++){
minLen = Math.min(minLen,strs[i].length()); //只需判断前minLen个字符
}
StringBuilder sb = new StringBuilder();
int j=0;
while(j<minLen){
char c = strs[0].charAt(j);
for(int i=1;i<len;i++){
if(strs[i].charAt(j)!=c){
return sb.toString();
}
}
sb.append(c);
j++;
}
return sb.toString();
}
}

解法二:横向扫描
思路:依次找两个字符串的最长公共前缀,依次更新最长公共前缀的结果

posted @ 2020-11-26 10:36  for_ward  阅读(68)  评论(0)    收藏  举报