编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”]
输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”]
输出: “”
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
解答:
public String longestCommonPrefix(String[] strs) {
//字符串数组为空时返回“”
if (strs.length <= 0)
return "";
int j;
//ans用来存放所求的共同前缀,并将其初始化为字符串数组的第一个值
String ans=strs[0];
for(int i=1;i< strs.length;i++){
//检索字符数组的每个字符,若不相同则退出循环
for (j=0;j<strs[i].length()&&j<ans.length();j++){
//charAt(i)用于索引指出String类型字符串的第i个字符
if(ans.charAt(j)!=strs[i].charAt(j))
break;
}
//substring(begin。end)截取字符串里第begin到end的所有字符
ans=ans.substring(0,j);
//若没有共同前缀则返回“”
if(ans.equals(""))
break;
}
return ans;
}
函数整理:
charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1;
substring(int beginIndex,int endIndex),返回一个新字符串,它是此字du符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。因此,该子字符串的长度为 endIndex-beginIndex。