class Solution {
public:
string::iterator RelizeFindEn(string &str,string &compared_str)
{ //"实现find_end"
string::iterator iter=str.end();
auto iter_begin=str.begin();
auto iter_end=str.end();
while(iter_begin!=iter_end)
{
auto iter1=iter_begin;
auto iter2=compared_str.begin();
while(*iter1==*iter2)
{
++iter1;
++iter2;
if(iter2==compared_str.end())
{
iter=iter_begin;
cout<<"find "<<compared_str<<" in "<<str<<endl;
break;
}
if(iter1==iter_end) {return iter;}
}
++iter_begin;
}
return iter;
}
string longestCommonPrefix(vector<string>& strs) {
for(size_t i=0;i<strs.size();i++)
{
if(strs[i].size()==0)
return "";
}
string common_string_;
string max_common_string_;
bool clear_flag_=false;
for(size_t i=0;i<strs[0].size();i++)
{
common_string_.push_back(strs[0][i]);
for(size_t j=1;j<strs.size();j++)
{
auto iter=RelizeFindEn(strs[j],common_string_);
cout<<*(iter)<<endl;
if(iter!=strs[j].end()) continue;
else
{
if(i==strs[0].size()-1)//最后一个字符
{
if(common_string_.size()>1)
{
common_string_.erase(common_string_.end()-1);
break;
}
else
common_string_.clear();
}
else//不是最后一个字符 说明中间有隔断
{
common_string_.erase(common_string_.end()-1);
clear_flag_=true;
break;
}
}
}
if(common_string_.size()>max_common_string_.size())
max_common_string_=common_string_;
if(clear_flag_)
{
common_string_.clear();
clear_flag_=false;
}
}
return max_common_string_;
}
};
求字符串的最大公共部分;
最新推荐文章于 2022-12-27 15:57:45 发布