题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
思路
1、先令字符串数组的第一个字符串为ans(也就是最长公共前缀)
2、从第二个字符串strs[i]开始遍历,寻找ans和strs[i]的最长公共前缀
3、更新ans的值(截取)
4、下一轮遍历(直到遍历完整个字符串数组)
5、最后让ans与空字符串比较(可能整个字符串数组都没有公共前缀),若为空则返回空字符串
class Solution {
public String longestCommonPrefix(String[] strs) {
if (strs.length == 0)
return "";
String ans = strs[0];
for (int i=1;i<strs.length;i++) {
int j = 0;
for (;j<ans.length()&&j<strs[i].length();j++) {
if(ans.charAt(j)!= strs[i].charAt(j))
break;
}
ans = ans.substring(0,j);
}
if(ans.equals("")) {
return "";
}
return ans;
}
}