题目

编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 “”。

14.最长公共前缀_算法

分析

i==strs[j].length()表示当前下标已经刚好超过j-1下标字符串的最大下标,前缀长度为0到i-1长度也就是i。
所有字符串的字符与第一个字符串的逐个字符依次比较,相同下标出现一个字符串的当前字符不等于第一个字符串对应的字符,那么前缀的长度就是当前0到字符下标-1的长度,使用字符串方法substring方法截取所需的前缀。
具体详细见代码。

代码

class Solution {
public String longestCommonPrefix(String[] strs) {
//只需要比较前min个字符
for(int i=0;i<strs[0].length();i++){
char c = strs[0].charAt(i);
for(int j=1;j<strs.length;j++){
if(i==strs[j].length()||strs[j].charAt(i) != c){
return strs[0].substring(0,i);
}
}
}
return strs[0];
}
}

14.最长公共前缀_最长公共前缀_02