难度简单2576
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 ""。
示例 1:
输入:strs = ["flower","flow","flight"] 输出:"fl"
示例 2:
输入:strs = ["dog","racecar","car"] 输出:"" 解释:输入不存在公共前缀。
提示:
1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成
- class Solution {
- public:
- string longestCommonPrefix(vector
& strs) { - int min=strs[0].length();
- string mstr=strs[0];
- if(strs.size()==1)
- return strs[0];
- for(int i=1;i
size();i++) - if(min>strs[i].length())
- {
- min=strs[i].length();
- mstr=strs[i];
- }
- int flag;
- for(int j=min;j>=1;j--)
- {
- flag=1;
- for(int i=0;i
size();i++) - {
- if(strncmp(strs[i].data(),mstr.data(),j)!=0)
- {
- flag=0;
- break;
- }
- }
- if(flag)
- {
- char tmp[mstr.length()+1];
- copy(mstr.begin(),mstr.begin()+j,tmp);
- tmp[j]=0;
- return tmp;
- }
- }
- return "";
- }
- };