题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
解答:
目前是只有暴力的想法,即获取字符串数组的第一个元素,然后和后面的元素进行一个一一比较。
class Solution {
public String longestCommonPrefix(String[] strs) {
int strsLength = strs.length; 获取字符数组的长度
if (strsLength == 0) return "";这一步很关键,因为如果字符是0,那就直接返回""
String one = strs[0];拿到数组的第一个元素
StringBuilder result = new StringBuilder();使用StringBuilder连接字符串可以速度快一点
for (int i = 0; i < one.length(); i++) {遍历
char c = one.charAt(i);拿到第一个字符串的第i的元素
for (int j = 1; j < strsLength; j++) {遍历
String currentString = strs[j];拿到第j个字符串
if (i >= currentString.length() || currentString.charAt(i) != c) {
两次判断 第一个是防止比对的字符串越界 第二个是看对应的前缀元素是否相同
return result.toString();只有有一个符合即返回
}
}
result.append(c);添加元素
}
return result.toString();
}
}
仅作为学生个人的学习记录。