题解 | #最长公共前缀#
最长公共前缀
http://www.nowcoder.com/practice/28eb3175488f4434a4a6207f6f484f47
先数组排序,然后只需要比较最大和最小的暨第一个和最后一个string,保存一个标记位i,利用substr返回string中第一个到第i个组成的子字符串;注意,如果strs为空,必须返回"".
class Solution {
public:
/**
*
* @param strs string字符串vector
* @return string字符串
*/
string longestCommonPrefix(vector<string>& strs)
{
// write code here
int len = strs.size();
if(len == 0)
return "";
sort(strs.begin(),strs.end());
int flag = min(strs[0].size(),strs[len-1].size());
int i = 0;
for(i = 0;i<flag;++i)
{
if(strs[0][i] != strs[len-1][i])
break;
}
return strs[0].substr(0,i);
}
}; 