这几天一直在看了July写了【横空出世,席卷互联网 [评微软等公司数据结构+算法面试100题】,里面的好多算法都很不错,所以决定把看过掌握地并亲自试验一遍没有问题后再写到自己的博客中,当然算法的思想及实现都会注明来自何方。
文章来自:http://blog.csdn.net/v_JULY_v/archive/2011/04/14/6322882.aspx
算法一:左旋转字符串
题目描述:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。
 如把字符串abcdef左旋转2位得到字符串cdefab。
 请实现字符串左旋转的函数,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。
思路一:
 以下的4点文字分析,引自网友zhedahht(http://zhedahht.blog.163.com/blog/#m)。
 分析:
     1、如果不考虑时间和空间复杂度的限制,最简单的方法莫过于把这道题看成是把字符串分成前后两部分,通过旋转操作把这两个部分交换位置。
     2、于是我们可以新开辟一块长度为n+1的辅助空间,把原字符串后半部

 
                   
                   
                   
                   本文介绍了字符串左旋转操作的算法,通过分析不同思路,包括利用翻转操作和求最大公约数的方法,实现了在O(n)时间和O(1)空间复杂度内完成字符串左旋转。并提供了C++代码示例。
本文介绍了字符串左旋转操作的算法,通过分析不同思路,包括利用翻转操作和求最大公约数的方法,实现了在O(n)时间和O(1)空间复杂度内完成字符串左旋转。并提供了C++代码示例。
           最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                  
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            