用sort对数组中的字符串进行排序,据排序规则可知,排序后数组中的首个字符串与最后一个字符串相差肯定是最大的。要想找到公共部分,只需比较首个字符串和最后一个字符串即可。
class Solution {
public:
string longestCommonPrefix(vector<string>& str) {
sort(str.begin(),str.end());
string s1=str.front();
string s2=str.back();
int i=0;
while(i<s1.size()&&i<s2.size()&&s1[i]==s2[i]){
++i;
}
return string(s1.begin(),s1.begin()+i);
}
};