题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
解决思路:
简单粗暴,依次判断所有字符串的同一下标是否相同,一旦不同立即return当前结果
/*
*作者:赵星海
*时间:2020/7/29 9:01
*用途:最长公共前缀
*/
public String longestCommonPrefix(String[] strs) {
//首先排除三个特殊情况 null 长度0 长度1
if (strs == null || strs.length == 0) return "";
if (strs.length == 1) return strs[0];
for(String sss :strs){
if (sss.equals(""))return "";
}
String s = "";//当前最长公共前缀
char c = '-';//当前用来对比的字符
for (int i = 0; i < strs[0].length(); i++) {
for (int j = 0; j < strs.length; j++) {
//取每一个String 的同一个下标的字符进行对比
if (strs[j].length()>i){
if (j == 0) {
c = strs[j].charAt(i);
} else {
if (strs[j].charAt(i) != c) {
return s;
}
}
}else {
return s;
}
}
s += c;
}
return s;
}