题目要求
思路
1.先将字符串数组进行排序,排序后的第一个元素的长度,就是最长公共前缀可能的最大长度,后续只需要比较这一段字符串的最大公共前缀即可。
2.将每一个字符串固定下标值的字符同第一个字符串所对应的对应字符进行对比,如果都一样,把这个字符插入到最终的返回的字符串中,一共需要遍历排序后的第一个元素的长度次。
代码实现
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
string s = "";
if(strs.empty())
return s;
sort(strs.begin(), strs.end());
int n = strs[0].length();
for(int i = 0; i < n; i++)
{
for(int j = 0; j < strs.size(); j++)
{
if(strs[0][i] != strs[j][i])
return s;
}
s += strs[0][i];
}
return s;
}
};