编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入: [“flower”,“flow”,“flight”] 输出: “fl”
示例 2:
输入: [“dog”,“racecar”,“car”] 输出: “” 解释: 输入不存在公共前缀。
说明:所有输入只包含小写字母 a-z 。
方法:水平扫描
将字符串数组中的第一个元素元素作为对比对象,遍历对比。
indexOf(a):用于查找字符串中第一次出现a的序号,没有则返回-1;
substring(b,c):提取字符串中b-c序号的字符串;
遍历过程中 先将第一个元素完整进行对比,如果indexOf返回-1则使用substring将对比字符串从后开始减少一个字符。
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length==0) return "";
String premix = strs[0];
for(int i = 1;i<strs.length;i++){
while(strs[i].indexOf(premix)!=0){
premix = premix.substring(0,premix.length()-1);
if(premix.length()==0){
return "";
}
}
}
return premix;
}
}