题目
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例1
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例2
输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。
解题思路
1,当字符串数组长度为 0 时则公共前缀为空,直接返回
2,令最长公共前缀 ans 的值为第一个字符串,并进行初始化
3,遍历后面的字符串,依次将其与 ans 进行比较,两两找出公共前缀,最终结果即为最长公共前缀
4,如果查找过程中出现了 ans 为空的情况,则公共前缀不存在直接返回
本题中有用到substring方法,用于返回一个字符串的子串,可以带俩个参数,指从哪里开始,然后到哪结束
代码
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;//因为是求前缀,所以j作为俩个字符串匹配的公共下标
for(;j<ans.length()&&j<strs[i].length();j++){
if(strs[i].charAt(j) != ans.charAt(j)){
break;
}
}
ans=ans.substring(0,j);//截取字符串
if(ans.equals("")){//判空
return " ";
}
}
return ans;
}