编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入: ["flower","flow","flight"] 输出: "fl"
示例 2:
输入: ["dog","racecar","car"] 输出: "" 解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z
。
理解:
//1将第一个字符串和第二个比较,获取自左向右都相同的部分做为新的字符串
//2将第一步 字符串作为下面字符串比较
//重复1,2步骤 最终获取值
class Solution {
public String longestCommonPrefix(String[] strs) {
String retStr = "";
StringBuffer string = new StringBuffer();
if (strs == null || strs.length ==0) {
return retStr;
}else {
for(int i = 0;i<strs.length ;i++) {
StringBuffer stringBuffer = new StringBuffer(strs[i]);
if(i == 0) {
string = new StringBuffer(strs[0]);//每次初始值
}else {
string = getStringSame(string,stringBuffer);
}
}
}
if(string !=null){
retStr = string.toString();
}
return retStr;
}
/**
*
* @param before
* @param after
* @return
*/
public static StringBuffer getStringSame(StringBuffer before,StringBuffer after) {
StringBuffer ss = new StringBuffer();
for(int i = 0;i <before.length() ;i++ ) {
if(after.length() > i ) {
String substring = before.substring(0, i+1);
String substring2 = after.substring(0, i+1);
if(substring.equals(substring2)) {
ss = new StringBuffer(substring);
}else {
return ss;
}
}
}
return ss;
}
}