九章算法面试题55 旋转字符串
2015-05-13 02:01
399 查看
九章算法官网-原文网址
http://www.jiuzhang.com/problem/55/题目
给一个字符串和一个旋转的偏移量offset,将字符串循环右移offset位。如:"abcdefg" 循环右移 4位之后变为了:"defgabc"
要求做到O(1)的额外空间耗费,O(n)的时间
在线测试本题
http://lintcode.com/problem/rotate-string/解答
采用三步反转法。以S="abcdefg" offset=4为例子
首先将字符串看做:"abc"+"defg"
先整体反转:得到 "gfed" + "cba"
然后各自反转:得到“defg” + "abc" = "defgabc"
时间复杂度O(n),额外空间复杂度O(1)
相关文章推荐
- 九章算法面试题15 字符串编辑距离
- 程序员面试题精选100题(21)-左旋转字符串[算法]
- 面试题之九章算法 字符串编辑距离
- lintcode&九章算法——Google面试题 | 有效括号字符串 ? 待解决
- 九章算法面试题36 交错的字符串
- 程序员面试题精选100题(21)-左旋转字符串[算法]
- 面试题42:翻转单词顺序VS左旋转字符串
- lintcode&九章算法——Google面试题:原子计数
- 九章算法面试题81 岛屿的个数
- 【算法】旋转字符串
- 算法 旋转字符串
- 九章算法面试题77 插入区间
- 面试题46:翻转单词顺序VS左旋转字符串
- 九章算法面试题40 不用除法求积
- 剑指Offer----面试题42(2):左旋转字符串
- 九章算法面试题50 队列上实现Min函数
- 九章算法面试题67 3 sum
- 九章算法面试题78 有效回文串
- 剑指offer——面试题42:(二)字符串的坐旋转操作
- 经典算法——左旋转字符串