14、最长公共前缀
描述:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
解法1:用StringBuilder来存放公共前缀。 先记录第一个字符串的第一个字符,遍历字符串数组,和数组中的每一个字符串进行比对。如果有一个不同或者达到了数组中最小字符串的length时就返回当前的sb。
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs.length==0){
return "";
}
StringBuilder sb = new StringBuilder();
/**不需要找到串中的最小长度
int minlen = strs[0].length();
for(String str : strs){
if(str.length()<minlen)
minlen = str.length();
}
**/
int i=0;
while(true){
//此处必须判断,否则会出现charAt(i)越界,参考用例:[he,hello]
if(i == strs[0].length)
return sb.toString();
char c = strs[0].charAt(i);//数组第一个字符串中,从第一个往后比,
for(String str : strs){
//此处可保证当达到穿中最小字符串的长度是返回
if(c != str.charAt(i) || i == str.length()){
return sb.toString();
}
}
sb.append(c);
i++;
}
}
}