求字符串数组里的字符串公共最长前缀
大致思路:
先对字符串排序,然后只需要比较第一个和最后一个的字符串,这两个字符串必定是差距最大的两个
(因为排序首先从第一个开始排),如果首字符不等,就返回空,否则,说明所有字符串的首字符相等,那么接着判断第二个字符。
AC代码:
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
int len = strs.size();
if(len==0)
return "";
if(len==1)
return strs[0];
sort(strs.begin(),strs.end());
int l = min(strs[0].size(),strs[len-1].size());
for(int i=0;i<l;i++)
{
if(strs[0][i]!=strs[len-1][i])
return strs[0].substr(0,i);
}
return strs[0].substr(0,l);
}
};