代码:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
/*
找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
*/
string LstComPreFix = "";
int n = strs.size();// 字符串个数
if(!n)
{
return LstComPreFix;
}
int minStrLen = pow(2,31)-1;// 最短的字符串长度
int index = 0;// 最短的字符串的下标位置
for(int i = 0; i < n; i++)
{
if(strs[i].length() < minStrLen)
{
minStrLen = strs[i].length();
index = i;
}
}
for(int i = 0; i < minStrLen; i++)
{
char tmp = strs[index][i];
bool flag = true;// 如果每个字符串的第i个位置都为tmp,即strs[index][i]是字符串数组最长公共前缀的一部分
for(int j = 0; j < n; j++)
{
if(strs[j][i] != tmp)
{
flag = false; break;
}
}
if(flag)
{
LstComPreFix += tmp;
}
else
{
break;
}
}
return LstComPreFix;
}
};