编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i]
仅由小写英文字母组成
class Solution {
public:
string dac(int left, int right, vector<string>& strs) {
if (left == right) return strs[left];
int mid = (left + right) / 2;
string ls = dac(left, mid, strs);
string rs = dac(mid+1, right, strs);
int i = 0;
for (; i < min(ls.length(), rs.length()); i++)
if (ls[i] != rs[i]) break;
return ls.substr(0, i);
}
string longestCommonPrefix(vector<string>& strs) {
return dac(0, strs.size()-1, strs);
}
};
4 ms 75.35%
11 MB 7.34%