一、题目
最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。
如果不存在公共前缀,返回空字符串 “”。
示例 1:
输入:strs = [“flower”,“flow”,“flight”]
输出:“fl”
示例 2:
输入:strs = [“dog”,“racecar”,“car”]
输出:""
解释:输入不存在公共前缀。
提示:
0 <= strs.length <= 200
0 <= strs[i].length <= 200
strs[i] 仅由小写英文字母组成
二、编码
#include <iostream>
using namespace std;
#include <vector>
class Solution {
public:
string longestCommonPrefix(vector<string> &strs) {
//长度保护
if(!strs.size())
{
return "";
}
string commstr = strs[0];
for(int i=1; i<strs.size(); ++i)
{
//取最短长度
int strlen = min(commstr.size(), strs[i].size());
int ii = 0 ;
while( ii < strlen && commstr[ii] == strs[i][ii] )
{
++ii;
}
//cout << commstr.substr(0, ii) << endl;
commstr = commstr.substr(0, ii);
}
return commstr;
}
};
int main()
{
//string arr[] ={};
string arr[] = {"aasdd","aasasdfsd","aasdwe"};
int arrlen = sizeof(arr)/sizeof(arr[0]);
vector<string> vv(arr, arr+arrlen);
Solution ss;
ss.longestCommonPrefix(vv);
}