1.题目
Write a function to find the longest common prefix string amongst an array of strings.
找出所有字符串的最长公共前缀。
2.思路
先找前两个字符串的最长公共前缀,然后后面的字符串和这个公共前缀逐一比较,不断更新这个前缀即可(这个前缀只可能越来越短或者不变)
注意:如果遇到空字符串或者前缀变为空直接返回“”就行。
class Solution {
public:
string getcommon(string a,string b)
{
int len=a.length()>b.length()?b.length():a.length();
int i=0;
if(len==0) return "";
else for(i=0;i<len;i++)
{
if(a[i]!=b[i]) break;
}
a=a.substr(0,i);
return a;
}
string longestCommonPrefix(vector<string>& strs) {
int size=strs.size();
if(size == 0)
return "";
string prefix=strs[0];
for(int i=1;i<size;i++)
{
prefix=getcommon(prefix,strs[i]);
if(prefix=="") break;
}
return prefix;
}
};