题目
代码
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
//题目要求的是必须从每个字符串的0索引开始计算公共前缀
if(strs.size()==0)
return "";
string prefix=strs[0];
for(int i=1;i<strs.size();i++)
{
while(strs[i].find(prefix)!=0)
{
prefix=prefix.substr(0,prefix.size()-1);
if(prefix=="")
return "";
}
}
return prefix;
}
};
思路
首先要看懂题目的意思是公共前缀,都要从第一个位置开始才算公共前缀。
将第一个字符串整体当作前缀,然后依次对每个其他字符串进行判断,是否匹配,如果不匹配,把第一个字符串去除最后一位,再进行判断,反复执行直到字符串为“”或者匹配成功,然后再对下一个字符串进行匹配。