题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-common-prefix
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:类似集合两两求交集,相交结果再与第三个集合继续做交集,直至做完所有交集运算作为最终结果。
参考代码:
string longestCommonPrefix(vector<string>& strs) {
if (strs.size() == 0)
return "";
else if (strs.size() == 1)
return strs[0];
else {
string ans = strs[0];
for (int i = 1; i < strs.size(); i++) {
int len = ans.size() <= strs[i].size() ? ans.size() : strs[i].size();
string tmp;
for (int j = 0; j < len; j++) {
if (ans[j] == strs[i][j])
tmp += ans[j];
else
break;
}
ans = tmp;
if (ans.size() == 0)
return ans;
}
return ans;
}
}