题目给出一个数组,数组中每项包含一个字符串,要求找出字符串数组中的最长公共前缀。代码如下:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int len = strs.size(); //获取总字符串数量
int minlength = INT_MIN; //用于记录最短字符串长度,防止数组越界
string answer; //记录答案
int flag; //记录是否相等的状态
for(int i = 0; i < len; ++i)
{
if(strs[i].length() < minlength) minlength = strs[i].length(); //记录最短字符串
}
for(int k = 0; k < minlength; ++k)
{
for(int j = 0; j < len - 1; ++j)
{
if(strs[j][k] == strs[j + 1][k]) //判断当前这个字符是否与下一个字符相等
{
flag = 1; //相等继续循环
continue;
}
else
{
flag = 0;
break; //不相等退出循环
}
}
if(flag == 1) answer += strs[0][k]; //如果相等,及将当前字符加入答案中
else break; //否则退出循环
}
return answer;
}
};