题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""
。
输入:strs = ["flower","flow","flight"] 输出:"fl"
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
思路:
参考了网上很多解法,用了比较简便的一种思路。先对字符串进行排序,再得出最后一个字符和第一个字符的CommonPrefix。(用了substr(a,b)函数截取字符串,其中a表示起始下标,b表示截取字符串的个数)
算法代码:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
if(strs.size() == 0) return "";
if(strs.size() == 1) return strs[0];
sort(strs.begin(),strs.end());
string s1 = strs[0];
string s2 = strs.back();
for(int i = 0; i<=s1.size(); i++)
{
if(s1[i] != s2[i])
{
return s1.substr(0,i);
}
}
return s1;
}
};