问题描述:
Write a function to find the longest common prefix string amongst an array of strings.
思路分析:
对于找到公共最长前缀子串,最简单的方法就是以第一个串为基准,以第一个串的每个字符作为一个匹配量,依次跟后面每一个串的对应位置的字符串相比较。在匹配成功时将此字符与存入一个新的数组中,最终函数返回这个前缀字符串,即题目要求的最长公共前缀子串。
核心代码如下:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string result;
char temp;
for(int i=0;i<strs[0].size();result+=strs[0][i],i++) //以第一个字符串每个字符为标准
{
temp=strs[0][i]; //作标识
for(int j=0;j<strs.size();j++) //对每个进行匹配
{
if(i>=strs[j].size()) return result; //标准串中的长度比匹配串中的长
if(j>0&&strs[j][i]!=temp) //在存在至少一个串的情况下,不相等就返回
//if(strs[j][i]==strs[j+1][i]) continue; //相邻的相等,继续循环
//else return result; //相邻的不等,匹配结束
return result;
}
}
return result;
}
};