题目
Write a function to find the longest common prefix string amongst an array of strings.
If there is no common prefix, return an empty string “”.
Example 1:
Input: ["flower","flow","flight"]
Output: "fl"
Example 2:
Input: ["dog","racecar","car"]
Output: ""
Explanation: There is no common prefix among the input strings.
Note:
All given inputs are in lowercase letters a-z.
思路
取第一个string的字符作为基,与其他string循环同位置的字符比较,如果发现不同就结束,如果能完成完整的循环就将该字符加入返回res中。
需要处理3种特殊情况:
1.输入的strs为空时,直接返回”“。
2.输入的strs中只有一个字符串,直接返回这个字符串。
3.当没有检测到前缀时,返回”“。
代码:
class Solution {
public:
string longestCommonPrefix(vector<string>& strs) {
int size = strs.size();
if(size==0)
return "";
else if(size==1)
return strs[0];
string res;
for(int i=0;i<strs[0].length();i++)
{
int flag=0;
for(int j=1;j<size;j++)
{
if(strs[j].length()<=i)
{
flag=1;
break;
}
else if(strs[j][i]!=strs[0][i])
{
flag=1;
break;
}
}
if(flag==0)
res += strs[0][i];
else
break;
}
if(res.length()==0)
return "";
else
return res;
}
};