关注
50%
思路是计算比较最长公共子串的长度
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
//是否存在子串
int findLongestSize(string A, string B, int&endindex) {
int n=A.size();
int m=B.size();
vector<vector<int> > matrix(n,vector<int>(m,0));
int res=0;
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(A.at(i)==B.at(j))
{
if(i==0||j==0) matrix[i][j]=1;
else matrix[i][j]=matrix[i-1][j-1]+1;
if(res<matrix[i][j])
{
res=matrix[i][j];
endindex=i;
}
}
}
}
return res;
}
int main()
{
string line;
//string x="nihao";
//cout<<x.substr(3);
string a,b;
string output4[4]={"invalid","forward","backward","both"};
while(cin>>line)
{
int res=0;//0-invalid 3both
cin>>a>>b;
if(a.size()+b.size()>line.size())
{
cout<<output4[res]<<endl;
continue;
}
//isforward
int lcs1=0;
int lcs2=0;
int endindex=0;
lcs1=findLongestSize(line,a,endindex);
if(line.size()-endindex>b.size())
{
lcs2=findLongestSize(line.substr(endindex+1),b,endindex);
if(lcs1+lcs2==a.size()+b.size()) res=1;
}
//isbackward
string rline=line;
reverse(rline.begin(),rline.end());
int lcs3=0;
int lcs4=0;
endindex=0;
lcs3=findLongestSize(rline,a,endindex);
if(rline.size()-endindex>b.size())
{
lcs4=findLongestSize(line.substr(endindex+1),b,endindex);
if(lcs3+lcs4==a.size()+b.size())
{
if(res) res=3;
else res=2;
}
}
cout<<output4[res]<<endl;
}
return 0;
}
查看原帖
点赞 评论
相关推荐
11-26 10:52
广州理工学院 后端工程师 点赞 评论 收藏
分享
11-26 14:42
郑州轻工业大学 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 2025年终总结 #
172690次浏览 2921人参与
# 找工作,行业重要还是岗位重要? #
85307次浏览 1688人参与
# 职场上哪些行为很加分? #
306892次浏览 3452人参与
# 大家每天通勤多久? #
69781次浏览 442人参与
# 实习的内耗时刻 #
211164次浏览 1539人参与
# 你面试体验感最差/最好的公司 #
17696次浏览 291人参与
# 一人说一个提前实习的好处 #
10668次浏览 204人参与
# 今年你最想重开的一场面试是? #
4050次浏览 69人参与
# 秋招落幕,你是He or Be #
12033次浏览 237人参与
# 互联网行业现在还值得去吗 #
46908次浏览 351人参与
# 实习没事做是福还是祸? #
16695次浏览 255人参与
# 面试吐槽bot #
164997次浏览 814人参与
# 重来一次,你会对开始求职的自己说 #
6036次浏览 153人参与
# 反问环节如何提问 #
126368次浏览 2663人参与
# 礼物开箱Plog #
675次浏览 24人参与
# 工作中听到最受打击的一句话 #
6570次浏览 113人参与
# 团建是“福利”还是是 “渡劫” #
7145次浏览 150人参与
# 我的第一份实习怎么找的 #
208542次浏览 1827人参与
# 比亚迪工作体验 #
74695次浏览 281人参与
# 大家实习每天都在干啥 #
106523次浏览 581人参与