编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串""
。
示例1:
输入:["flower","flow","flight"]
输出:"fl"
示例2:
输入:["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
说明:
所有输入只包含小写字母a~z
。
方法一:
class Solution {
public String longestCommonPrefix(String[] strs) {
//判断数组strs长度是否为0,如果为0直接返回“”
if (strs == null || strs.length == 0) {
return "";
}
//取出数组strs的第一个数放入prefix中
String prefix = strs[0];
//遍历数组strs
for (int i = 1; i < strs.length; i++) {
//while循环遍历,遍历条件为查找遍历prefix在strs[i]中第一次出现的位置
while (strs[i].indexOf(prefix) != 0) {
//没遍历一次变量就用substring截取一次
prefix = prefix.substring(0, prefix.length() - 1);
//判断变量prefix是否为空,为空就没有公共前缀,直接return“”。
if (prefix.isEmpty()) {
return "";
}
}
}
return prefix;
}
}
方法二
public String longestCommonPrefix(String[] strs) {
if (strs == null || strs.length == 0) {
return "";
}
for (int i = 0; i < strs[0].length() ; i++){
char c = strs[0].charAt(i);
for (int j = 1; j < strs.length; j ++) {
if (i == strs[j].length() || strs[j].charAt(i) != c) {
return strs[0].substring(0, i);
}
}
}
return strs[0];
}
作者:LeetCode 链接:https://leetcode-cn.com/problems/longest-common-prefix/solution/zui-chang-gong-gong-qian-zhui-by-leetcode/