码迷,mamicode.com
首页 > 移动开发 > 详细

循环移动字符串

时间:2014-06-28 20:50:03      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:问题   c   时间   一个      字符串   

  这个问题的意思就是给定两个字符串s1和s2,判断s2是否包含在s1循环移位得到的字符串中。

  这个题的最简单的一种思路就是对s1进行循环穷举,对于得到的每种情况,都进行判断s2是否包含在其中。

  不过如果s1的字符串很长,那么穷举的时间复杂度是相当高的。因此可以换一种思路。

  新的解决办法相当的巧妙,假设我们在s1字符串前面再加入一个跟s1登场的空间,每当s1循环移动之后,就把移到末尾的字符在前面空间中加一个,那么情况如下所示:

  ABCD----ABCDA----ABCDAB----ABCDABC----ABCDABCD

  如果s2在s1的循环移位中,那么一定就在s1s1中。显然我们只需要多一个n的空间,即可将时间复杂度降到很低。

循环移动字符串,布布扣,bubuko.com

循环移动字符串

标签:问题   c   时间   一个      字符串   

原文地址:http://www.cnblogs.com/cjmlovelulu/p/3794604.html

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