问题描述 :
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"]
输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"]
输出:""
解释:输入不存在公共前缀。
解题思路:
- 以第一个字符串为基础,遍历该字符串长度
- 完全遍历容器容量,对比余下各个字符串相同位置的元素是否等于第一个元素
代码实现:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string ans = "";
if(strs.size() == 0)
return ans;
sort(strs.begin(), strs.end());
for(int i=0;i<strs[0].size();i++)//第一个字符串的长度
{
char temp = strs[0][i];
int j;
for(j=1;j<strs.size();j++)//容器字符串个数
{
if(temp != strs[j][i]) break;
}
if(j >= strs.size()) ans += temp;
else break;
}
return ans;
}
};