题目
编写一个函数查找字符串数组中的最长公共前缀
举例
思路
- 字符串数组相当于一个二维数组,找最长前缀相当于纵向遍历,设置两个指针,一个走横向取出当前的值,一个指针走纵向,将数组中的字符串相同下标的元素与横向指针所指的指进行比较
- 注意如果在遍历过程中其中有字符串已经遍历到末尾,就需要停止了,这个判断条件不要忘了
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.empty()) return "";
string res = "";
for(int j = 0; j<strs[0].size();++j)//j走横向
{
char c = strs[0][j];
for(int i = 0; i<strs.size(); ++i)//i走纵向
{
if(j>=strs[i].size() || strs[i][j] != c)//遇到一个字符串已遍历完
return res;
}
//每个字符串都ok就push_back到结果
res.push_back(c);
}
return res;
}
};