LintCode 旋转字符串

题目

给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)

样例
对于字符串 "abcdefg".
offset=0 => "abcdefg"
offset=1 => "gabcdef"
offset=2 => "fgabcde"
offset=3 => "efgabcd"

分析

旋转字符串在原地旋转,利用了一个技巧,旋转三次可以达到效果,具体看代码分析即可。这种旋转的技巧需要熟练掌握

代码

public class Solution {
    /**
     * @param str: an array of char
     * @param offset: an integer
     * @return: nothing
     */
    public void rotateString(char[] str, int offset) {
        // write your code here
        if (str == null || str.length == 0)
            return;
            
        offset = offset % str.length;
        reverse(str, 0, str.length - offset - 1);
        reverse(str, str.length - offset, str.length - 1);
        reverse(str, 0, str.length - 1);
    }
    
    private void reverse(char[] str, int start, int end) {
        for (int i = start, j = end; i < j; i++, j--) {
            char temp = str[i];
            str[i] = str[j];
            str[j] = temp;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 难度:容易 要求: 给定一个字符串和一个偏移量,根据偏移量旋...
    柒黍阅读 5,457评论 0 1
  • 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)您在真实的面试中是否遇到过这个题?Yes样例对于字...
    DayDayUpppppp阅读 3,138评论 0 0
  • 题目 描述 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串 "abcdefg"...
    悠扬前奏阅读 3,301评论 0 0
  • Node.js Buffer(缓冲区) JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在...
    FTOLsXD阅读 3,561评论 0 2
  • OpenGLES-理论准备 GitHub地址 https://github.com/softwarefaith/O...
    践行者阅读 4,459评论 0 1