心得:这一道题其实就是自己打暴力打出来的

没有想到正解真的就是暴力枚举

我的做法是这样的

就是枚举A字符串中长度为x的子串

看它是不是B串的子序列

接下来是我的绝望考试代码(100分AC)

//light
/*
这一道题我个人的思路就是二分答案+暴力 */
#include<bits/stdc++.h>
using namespace std;
string A,B;
/*
可以逆序枚举字符串,用ne[i][j]表示i位置的下一个j+'a’字母的位置
*/
int ne[][];/*
void Yuchuli(){
for(int i=B.length()-1;i>=0;i--){
int j=B[i]-'a';
int k=i-1;
while(k>=0&&B[k]-'a'!=j){
ne[k][j]=i;
k--;
// cout<<k<<' '<<j<<' '<<B[i]<<endl;
}
if(B[k]-'a'==j)
ne[k][j]=i;
}
}*/
int Zixulie(int l,int r){
int i=l;int k=;
// cout<<l<<" "<<r<<endl;
while(k<B.length()){
// j=ne[j][A[i]-'a'];
int flag=;
for(int j=k;j<B.length();j++)
if(A[i]==B[j]){
flag=;
// cout<<i<<" "<<A[i]<<" "<<j<<" "<<B[j]<<" "<<k<<endl;
k=j+;i++;
//cout<<i<<" "<<j<<endl;
break;
}
if(flag==)
break;
}
if(i>r)
return ;
else
return ;
}
bool check(int llenA){
//现在既然已经预处理出来了 就枚举区间 判断是否是子序列
for(int i=;i+llenA-<A.length();i++)
if(Zixulie(i,i+llenA-)==)
return false;
return true;
}
int main()
{
//freopen("light.in","r",stdin);
//freopen("light.out","w",stdout);
cin>>A>>B;
// Yuchuli();
// for(int i=0;i<B.length();i++){
// for(int j=0;j<26;j++)
// cout<<ne[i][j]<<" ";
// cout<<endl;
// } int l=,r=,ans=-;
while(l<r){
int mid=(l+r)>>;
if(mid>A.length()||mid>B.length()){
r=mid-;
continue;
}
// cout<<l<<" "<<r<<endl;
if(check(mid)==){
ans=mid;
r=mid;
}
else
l=mid+;
}
cout<<ans;
return ;
}/*
aabbcc
abcabc Tido 2019/7/25 星期四 10:41:04
abcdefddbba
aabbcce */

可以看出来,我把这一道题想复杂了

或者说我觉得这道题很麻烦以至于自己的代码很麻烦

我在程序中的很多地方其实是不必要的

例如二分答案

其实一个个从小往大枚举就行(其实都行)

然后我判断的地方一开始也有一点麻烦

这一道题老师的正解是

就是枚举以i为起点,长度为j的子串 最多也就n2

(》》我一开始还在考虑优化)

n最大2000 20002 =4000000=4*106其实还是可以接受的饿哦

综上所述这一道题就是一个超级简单的模拟枚举暴力求解啦

以后在做题的时候稍微对自己的想法和思路有点信心

以后还要学会自己算一下时间复杂度和空间大小,避免卡bug!

Biu加油

最新文章

  1. Mac 软件篇
  2. 解决java.lang.InstantiationError: sun.net.ftp.FtpClient
  3. html和css的联系
  4. 第一个PHP程序-HelloWorld
  5. linux:手动校准系统时间和硬件CMOS时间
  6. python中lambda函数
  7. [转]Flash Socket通信的安全策略
  8. jdbc详解(三)
  9. Ubuntu 14.04—无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系 解决办法
  10. [自制操作系统] 图形界面&VBE工具&MMIO显存&图形库/字库
  11. iOS开发之二:UIWindow与UIView
  12. main 及Scanner
  13. Python虚拟环境的安装与使用
  14. #Plugin 数字滚动累加动画插件
  15. 转- --python 3 编码
  16. 记录一则ORA-600 [13011]错误
  17. @PostConstruct和@PostConstruct 注解 及ehcache 缓存 执行过程 小记
  18. (转)php语法(符号用法)
  19. kafka0.8--0.11各个版本特性预览介绍
  20. 窗体的Alpha通道透明色支持

热门文章

  1. P1107 栈
  2. H3C 用802.1Q和子接口实现VLAN间路由
  3. H3C 路由表查找规则(3)
  4. element ui 批量删除
  5. HDU 3746 Cyclic Nacklace(kmp next数组运用)
  6. Java 趣事之 a=a++ 和 a=++a(转)
  7. 【31.95%】【CF 714B】Filya and Homework
  8. python类中的一些神奇方法
  9. DEVOPS技术实践_14:使用docker部署jenkins
  10. DEVOPS技术实践_07:Jenkins 管道工作