题目:
编写一个函数来查找字符串数组中的最长公共前缀
如果不存在公共前缀,返回空字符串 “”
示例 1:
输入:["flower","flow","flight"]
输出: "fl"
示例 2:
输入:["dog","racecar","car"]
输出:""
解释: 输入不存在公共前缀。
思路:
1. 当数组长度为0,返回空字符串
2. 初始化第一个元素为结果
3. 从第二个元素开始比较,假设结果与该元素得到最长公共前缀
4 当前最长公共前缀为空,返回空字符串
5 比较完所有元素后,得到最终结果
示例 1:
输入:["flower","flow","flight"]
res初始化为flower
res | 比较的元素 | 最新结果 |
---|---|---|
flower | flow | flow |
flow | flight | fl |
fl(结束) |
代码:
class Solution {
public String longestCommonPrefix(String[] strs) {
int len = strs.length;
if(len == 0) return "";
//初始化第一个字符串为结果
String res = strs[0];
//遍历1-n-1个字符串
for(int i = 1; i < len; ++i){
int j;
//依次比较每一个,得到最长公共前缀
for(j = 0; j < strs[i].length() && j < res.length(); ++j){
//字符不相等,退出
if(strs[i].charAt(j) != res.charAt(j)) break;
}
//更新最长公共前缀
res = strs[i].substring(0, j);
if(res.equals("")) break;
}
return res;
}
}