题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
解题分析:
1对字符串排序 找出最大和最小字符串
2用最小字符串和最大字符串挨个字符比对 找出公共子串
排序是按字典序排序的,最短的在前,最长的在后,而且strs里面有重复的字符串也不怕。
class Solution {
public:
/**
*
* @param strs string字符串vector
* @return string字符串
*/
string longestCommonPrefix(vector<string>& strs) {
// write code here
if(strs.size()<1)
return "";
if(strs.size()==1)
return strs[0];
sort(strs.begin(),strs.end());
string maxLengthStr=strs[strs.size()-1];
string minLengthStr=strs[0];
int minLength=strs[0].size();;
string prefixStr="";
for(int i=0; i<minLength; ++i){
if(maxLengthStr[i]==minLengthStr[i])
prefixStr+=minLengthStr[i];
else
break;
}
return prefixStr;
}
};