文字列配列内で最も長い共通プレフィックスを見つける関数を記述します。
共通のプレフィックスがない場合は、空の文字列 ""が返されます。
例1:
入力:strs = ["flower"、 "flow"、 "flight"]
出力: "fl"
分割統治アルゴリズムにより、分割統治法
class Solution {
public String longestCommonPrefix(String[] strs) {
if(strs==null||strs.length==0){
return "";
}
return fen(0,strs.length-1,strs);
}
public String fen(int left,int right,String[] strs){
if(left==right){
return strs[left];
}
int mid = (right-left)/2+left;
String lefts = fen(left,mid,strs);
String rights = fen(mid+1,right,strs);
StringBuilder sb = new StringBuilder();
for(int i=0;i<(lefts.length()<rights.length()?lefts.length():rights.length());i++){
if(lefts.charAt(i)!=rights.charAt(i)){
break;
}
sb.append(lefts.charAt(i));
}
return sb.toString();
}
}