leetcode14. Longest Common Prefix
思路:
二分法
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int maxIndex = strs.size() - 1;
if(maxIndex<0){
return "";
}
return commonPrefix(strs,0,maxIndex);
}
string commonPrefix(vector<string>& strs,int left,int right){
if(left==right){
return strs[left];
}
int middle = left + (right-left)/2;
string leftCommon = commonPrefix(strs,left,middle);
string rightCommon = commonPrefix(strs,middle+1,right);
int cursor = 0;
string tempCommon ="";
while(cursor<leftCommon.size() && cursor<rightCommon.size() && leftCommon[cursor] == rightCommon[cursor]) {tempCommon += leftCommon[cursor];cursor++;}
return tempCommon;
}
};