LeetCode||最长公共前缀——编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
算法解析:
输入的是一个字符串数组,需要分析的是字符串,既然是所有元素的公共前缀,那么必然是从元素开头开始,所以我们用遍历元素的方法:
前面我们已经讲过了indexOf()和substring()方法,所以我们运用这两个方法就能解决问题
程序
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length==0) return ""; //首先字符串不能为空
String p = strs[0];//取出第一个字符串,用于遍历
for(int i=1;i<strs.length;i++){
//从第二个元素开始进行遍历
while(strs[i].indexOf(p) != 0){
/**strs[i].indexOf(p)执行元素的遍历和匹配,也就是
*一次减少一个元素,如果p剩余的元素完全能找到则跳出
*最后就是如果全都没有,那么就返回一个空值
*/
p = p.substring(0,p.length()-1);
if(p.isEmpty()) return "";
}
}
return p;
}
}
还没有评论,来说两句吧...