以第一个字符串作为基准,判断每一个字符串相同下标的字符是否全部相同,复杂度O(m*n).
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size() == 0)
{
return "";
}
int n = strs.size();
string result = "";
int i = 0;
int j = 0;
while(j < strs[0].length())
{
char temp = strs[0][j];
for(i = 1;i < n; i++)
{
if(j > strs[i].length())
{
return result;
}
if(strs[i][j] != temp)
{
return result;
}
}
result += temp;
++j;
}
return result;
}
};
看到一种简单的思路,对所有字符串排序,找出“最大”与“最小”字符串的最长公共前缀即可。