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

字符串移位包含的问题

时间:2015-04-28 09:54:47      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:遍历   数组   

技术分享题目描述:

    给定两个字符串s1和s2,要求上是否能够通过s1作循环移位(rotate)得到的字符串包含。例如s1=AABCD和s2=CDAA,返回true,给定s1=ABCD和s2=ACBD,返回false.


技术分享解法一:

   可以使用最直接的方法对s1进行循环移位,再进行字符串包含的判断,从而遍历其所有的可能性。

代码如下:

char src[5] = "AABCD";
char des[5] = "CDAA";
int len = strlen(src);
for (int i = 0; i < len; i++)
{
char tempchar = src[0]; 
for (int j = 0; j < len - 1; j++)
src[j] = src[j + 1];
src[len - 1] = tempchar;
if (strstr(src, des) == 0)
return (true);
}
return false;

穷举做循环移位,当字符串长度N较大时,显然效率很低。


技术分享解法二:

技术分享技术分享

总结:

    第二种方法利用了“提高空间复杂度换取时间复杂度的降低”的思路,适用于对时间复杂度要求高的场合。



字符串移位包含的问题

标签:遍历   数组   

原文地址:http://blog.csdn.net/wangfengfan1/article/details/45316915

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