题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
class Solution11 {
public String longestCommonPrefix(String[] strs) {
// 1.如果传进来的是空数组,则返回空
if(strs.length == 0)
return "";
// 2.先假设最长公共子串是第一个字符串
String ans = strs[0];
// 3.从第二个字符串开始遍历字符串数组
for(int i =1;i<strs.length;i++) {
int j=0; // j表示第一个字符串中公共部分的最后一个字符后面一个的的下标
// 4.每一个字符数组中的字符串都要和第一个字符串进行对比,用j去遍历字符下标
for(;j<ans.length() && j < strs[i].length();j++) {
// 如果字符不相同,结束循环,得到的j就是公共部分的最后一个字符的后面一个的下标
if(ans.charAt(j) != strs[i].charAt(j))
break;
}
// 5.将结果字符串截取到j的位置,不包括j
ans = ans.substring(0, j);
// 6.如果没有公共部分,直接返回
if(ans.equals(""))
return ans;
}
return ans;
}
}