编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
思路:从第一个字符串strs[0]开始,遍历它的每个字符,是否后续字符串都包含
时刻注意数组越界,后续字符串长度可能小于strs[0].length();
class Solution {
public String longestCommonPrefix(String[] strs) {
//获得字符串数组的长度
int n = strs.length;
//获得第一个字符串的长度
int i = strs[0].length();
//定义结果same
String same = new String("");
//定义要判断字符
char s = ' ';
for (int m = 0; m < i; m++) {
//遍历strs[0]的每个字符
s = strs[0].charAt(m);
for (int j = 1; j < n; j++) {
//如果后续字符串长度等于m时,说明strs[j].charAt(m)是不存在的
//或者strs[j].charAt(m)存在,但是不等于s;那么就返回same
if (m == strs[j].length() || s != strs[j].charAt(m)) {
return same;
}
}
same += s;
}
return same;
}
}