Advertisement

19:字符串移位问题(1.7编程基础之字符串)

阅读量:

19:字符串移位包含问题

总时间限制: 1000ms 内存限制: 65536kB
描述
针对某一字符串,其循环移位操作被定义为:将该字符串的首字符移动至末尾,从而生成一个新的字符串。

给定两个字符串s1与s2,需判断其中一个是否为另一个经过若干次循环移位后所形成的新字符串的子串。例如,CDAA是AABCD经过两次移位后生成的BCDAA的子串,而ABCD与ACBD则无法通过多次移位使其中任一字符串成为另一字符串的子串。

输入
输入包含两个字符串,二者之间以一个空格分隔。这些字符串仅由字母和数字组成,长度不超过30个字符。

输出
若其中一个字符串是另一个经过若干次循环移位后得到的新字符串的子串,则输出true;否则输出false。

样例输入
AABCD CDAA
样例输出
true

分析:

在多次进行循环判断后,发现可以将字符串s1重复两次合并为一个整体,这样就能覆盖所有可能的循环情况,从而简化了处理过程。

复制代码
    #include <iostream>
    #include<string.h>
    using namespace std;
    //http://noi.openjudge.cn/ch0107/19/
    //注意判断长短的问题 
    char a[40],b[4

全部评论 (0)

还没有任何评论哟~