题目描述: 给定两个字符串s1, s2 , 要求判定s2是否能够被s1做循环移位得到的字符串包含

  解题思路: 复制一遍s1重新接到s1后面 , 再查询, O(nk)的时间复杂度, 还有一种不需要申请过多新空间的方法

  代码:

#include <iostream>
#include <queue>
#include <string>
#include <vector>
#include <algorithm>
#include <list>
#include <iterator>
#include <cmath>
#include <cstring>
#include <forward_list>
using namespace std;int main() {string s1,s2;cin >> s1 >> s2;s1 += s1;if(find(s1,s2)!=-1) cout << "Yes" << endl;else cout << "No" << endl;return 0;
}    

View Code

#include <iostream>
#include <queue>
#include <string>
#include <vector>
#include <algorithm>
#include <list>
#include <iterator>
#include <cmath>
#include <cstring>
#include <forward_list>
using namespace std;int my_find(string s1, string s2) {int len1 = (int)s1.length();int len2 = (int)s2.length();int found = 0;int cnt = 0;while(cnt < 2*len1) {int pos1 = cnt%len1;int pos2 = 0;if(s1[pos1] == s2[pos2]) {int i = 0;for(i = 0; i < len2; i++) {if(s1[(pos1+i)%len1] != s2[pos2+i]) break;}if(i == len2) {found = 1;break;}}cnt++;}if(found) return 1;else return 0;
}int main() {string s1,s2;cin >> s1 >> s2;if(my_find(s1,s2)) cout << "Yes" << endl;else cout << "No" << endl;return 0;
}

View Code

  思考: 都是脑洞题, 锻炼锻炼自己的思维也不错, 然后下面夯实自己的数据结构基础

转载于:https://www.cnblogs.com/FriskyPuppy/p/8012446.html

编程之美 3.1 字符串移位包含问题相关推荐

  1. 编程之美——3.1字符串移位包含问题

    假设字符串s1=AABCD,s2=CDAA,判断s2是否可以通过S1的循环移位得到字符串包含.  如 s1移两位: 1.ABCDA->2.BCDAA 则此时包含了 S2="CDAA&q ...

  2. 编程之美 3.1 字符串移位包含问 复杂度(O(N*K)

    分享关于编程之美3.1自己编写的代码,很简单. s2.沿着s1匹配(循环匹配,利用%Length技巧),匹配上,返回true. 1 //BOP3.1 2 3 char src[] = "AA ...

  3. 编程之美3.1 字符串移位包含问题

          这道题目的意思是给定一个字符串,作为源字符串,之后给出其他的字符串,确定源字符串是否能够经过旋转而得到给定的字符串,即移位包含问题.       假如,给定一个字符串 abcdefg,接着 ...

  4. 信息学奥赛一本通 2050:【例5.20】字串包含 | OpenJudge NOI 1.17 19:字符串移位包含问题

    [题目链接] ybt 2050:[例5.20]字串包含 OpenJudge NOI 1.17 19:字符串移位包含问题 [题目考点] 1. 字符串 2. 判断一个字符串是不是另一个字符串的子串(字符串 ...

  5. Bailian3711 字符串移位包含问题【字符串循环匹配】(POJ NOI0107-19)

    问题链接:POJ NOI0107-19 字符串移位包含问题. 字符串移位包含问题 总时间限制: 1000ms 内存限制: 65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第 ...

  6. [读书笔记]编程之美(三)

    [读书笔记]编程之美(三) 3.1字符串移位包含的问题 问题:给定两个字符串s1和s2,要求判定s2是否能够被s1做循环移位(rotate)得到的字符串包含.例如,给定s1=AABCD和s2=CDAA ...

  7. 编程之美-第3章 结构之法

    3.1. 字符串移位包含问题 方法1: 分别对字符串进行循环移1位,2位,3位-,来判断给定的字符串是否是其中一个字串. 复杂度是O(n^3) 方法2: 这也是一种利用空间换时间的方法. 代码如下, ...

  8. java 编程之美_《编程之美—微软技术面试心得》PDF 下载

    第1章 游戏之乐--游戏中碰到的题目 1.1 让CPU占用率曲线听你指挥 1.2 中国象棋将帅问题 1.3 一摞烙饼的排序 1.4 买书问题 1.5 快速找出故障机器 1.6 饮料供货 1.7 光影切 ...

  9. AC日记——字符串位移包含问题 1.7 19

    19:字符串移位包含问题 总时间限制:  1000ms 内存限制: 65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串. 给定两个字符串s1 ...

最新文章

  1. 某大龄程序员用亲身经历推翻35岁红线:大厂offer拿到手软,35岁才是黄金年龄!...
  2. OSPF Router-ID的选择
  3. 计算机病毒是什么文件形式,【文件病毒】文件病毒的格式、危害、特点_什么是文件病毒_佰佰安全网...
  4. 数据源架构模式之数据映射器
  5. shell 获取ora报错信息_频发:故障排除之又见 ORA-4031丨云和恩墨技术通讯
  6. c语言编程 三角波,周期矩形波、周期锯齿波、周期三角波,C语言程序.doc
  7. python字符串截取:截取yaml文件名后3个字符
  8. 电商系统的商品流水记录
  9. LoadRunner12安装说明以及问题解决
  10. 前端JS:判断list(数组)中的json对象是否重复
  11. 机器学习中的范数规则化之核范数及其应用
  12. 一个流氓软件有哪些典型特征?
  13. 老婆回家时没有帮老婆打点,也完全忘记提醒老婆晚上火车上很凉,内疚.亲爱的,对不起!...
  14. Python反射和内置方法(双下方法)
  15. 《HRNet-OCR:Object-Contextual Representations for Semantic Segmentation》论文笔记
  16. 抢红包算法 c++_【优化求解】基于粒子群算法的光伏电池MPPT控制策略
  17. ANSYS ICEM CFD二维结构网络生成实例——流动传热
  18. CJT长江连接器A2005系列线对板连接器排针排母PCB封装库
  19. python中lstrip_Python中的lstrip()方法使用简介
  20. 分享106个PHP源码,总有一款适合您

热门文章

  1. Java多线程断点下载
  2. Objective-C:MRC(引用计数器)在OC内部的可变对象是适用的,不可变对象是不适用的(例如 NSString、NSArray等)...
  3. 等价类划分方法的应用
  4. 如何在 Linux 上安装服务器管理软件 Cockpit
  5. 教练如何引导学员在线报名
  6. JAVA API-----String类和StringBuffer类
  7. ASP.NET Web API MediaTypeFormatter
  8. 【神奇的函数式编程语言的独特功能】Lisp 的运行期修改、编译代码,并替换当前运行版本的试验...
  9. Android源码分析(三):Mms模块总结(一)
  10. ActionScript3.0自定义Flex组件问题 重写组件的使用