Write a function to find the longest common prefix string amongst an array of strings.
题意:写一个函数(或方法)来寻找一个字符串数组中的最长公共前缀。
例如:”abcdefg”
”abcdefghijk”
”abcdfghijk”
”abcef”
上面的字符串数组的最长公共前缀就是”abc”。
思路:我的方法就是简单的模拟,把string数组遍历一遍找到最长公共前缀。
class Solution {
public:
void Match(string &str,string s)
{
string a;
int i;
for(i=0;i<str.size();i++)
{
if(str[i]==s[i])a+=str[i];
else break;
}
str=a;
}
string longestCommonPrefix(vector<string>& strs) {
string ans;
if(strs.size()==0)return ans;
if(strs.size()==1)return strs[0];
int i=0;
while(i<strs[0].size()&&i<strs[1].size())
{
if(strs[0][i]==strs[1][i])ans+=strs[0][i];
else break;
i++;
}
if(ans.size()==0)return ans;
for(i=2;i<strs.size();i++)
{
Match(ans,strs[i]);
if(ans.size()==0)return ans;
}
return ans;
}
};