博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串移位包含的问题
阅读量:5049 次
发布时间:2019-06-12

本文共 792 字,大约阅读时间需要 2 分钟。

#include
using namespace std;//method1/*最直接的方法就是对src进行循环移位,再进行字符串包含的判断,从而遍历其所有的可能性。时间复杂度为O(N^2)*/bool isContain(char* src,char* des){ int len=strlen(src); for(int i=0;i
ABCDA->ABCDAB->ABCDABC->ABCDABCD可以看出对s1做循环移位所得到的字符串都将是字符串s1s1的子字符串。如果s2可以由s1循环移位得到,那么s2一定在s1s1上。至此我们将问题转换成考察s2是否在s1s1上,可通过调用一次strstr函数得到结果。以空间换时间,时间复杂度为O(1)*/bool isContain2(char* src,char* des){ int len=strlen(src); char* src2=new char[2*len+1]; for(int i=0;i<2*len;i++) { src2[i]=src[i%len]; } src2[2*len]='\0'; if(strstr(src2,des)) { return true; } return false;}int main(){ char src[]="AABBCD"; char des[]="CDAA"; bool value=isContain2(src,des); if(value)cout<<"包含"<

  

转载于:https://www.cnblogs.com/yanglf/archive/2012/11/07/2758811.html

你可能感兴趣的文章
一个样例看清楚JQuery子元素选择器children()和find()的差别
查看>>
代码实现导航栏分割线
查看>>
Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>
一个mysql主从复制的配置案例
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
dvwa网络渗透测试环境的搭建
查看>>
Win8 安装VS2012 和 Sql Server失败问题
查看>>
过点(2,4)作一直线在第一象限与两轴围成三角形,问三角形面积的最小值?...
查看>>
java aes CBC的填充方式发现
查看>>
使用ionic cordova build android --release --prod命令打包报有如下错误及解决方法
查看>>
BZOJ 2338 HNOI2011 数矩形 计算几何
查看>>
关于页面<!DOCTYPE>声明
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
C++标准库vector使用(更新中...)
查看>>
cocos2d-x 2.2.6 之 .xml文件数据读取
查看>>
枚举的使用
查看>>
BZOJ 1531 二进制优化多重背包
查看>>