题目:
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
说明:
所有输入只包含小写字母 a-z 。
解题:
找出最短字符串,并以其为标准,判断其余字符串的每个字符是否最短字符串的对应位置的字符相等
代码:
class Solution
{
public:
string longestCommonPrefix(vector<string>& strs)
{
if(strs.empty())
return "";
int len=strs.size();
//t i=0;
int j=0;
string minLen=strs[0];
//找出最短字符串,以最短字符串为标准
for(int i=1;i<len;i++)
{
if(strs[i].size()<minLen.size())
minLen=strs[i];
}
while(j<minLen.size())
{
for(int i=0;i<len;i++)
{
if(strs[i][j]!=minLen[j])
return minLen.substr(0,j);
}
j++;
}
return minLen.substr(0,j);
}
};