码迷,mamicode.com
首页 > 其他好文 > 详细

编程之美Ex2——字符串移位包含的问题

时间:2015-04-08 22:49:58      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

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

例如,

给定s1=AABCD和s2=CDAA,返回true;

给定s1=ABCD和s2=ACBD,返回false。

 

法一:直接循环移位,用strstr()比较

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 
 5 bool Check(char src[], char des[]);
 6 
 7 int main()
 8 {
 9     char src[] = "AABBCD";
10     char des[] = "CDAA";
11 
12     bool res = Check(src,des);
13     if(res)
14         cout<<"true"<<endl;
15     else
16         cout<<"false"<<endl;
17 
18     return 0;
19 
20 }
21 
22 bool Check(char src[], char des[])
23 {
24     char temp = src[0];
25     bool res = false;
26     for(int i=0; i<strlen(src); ++i)
27     {
28         for(int j=0; j<strlen(src)-1;++j)
29         {
30             src[j] = src[j+1];
31         }
32         src[strlen(src)-1] = temp;
33 
34         if(strstr(src,des) != NULL)
35             res = true;
36     }
37     return res;
38 }

 

法二:s2必然在s1s1之中,用空间换取时间。

 

编程之美Ex2——字符串移位包含的问题

标签:

原文地址:http://www.cnblogs.com/Big-Rabbit/p/4404187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!