LintCode-8.旋转字符串

题目

描述

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

样例

对于字符串 "abcdefg".

offset=0 => "abcdefg"
offset=1 => "gabcdef"
offset=2 => "fgabcde"
offset=3 => "efgabcd"

解答

思路

乍一看的思路是建立新的数组往里面填,空间复杂度O(n),时间复杂度O(1)。看了一下“挑战“是空间复杂度O(1),那么就是循环咯(没百度,可能有更6的办法)。

按照字面意思往后偏移。offset是多少偏移多少次。
注意时间限制(Time Limit Exceed):offset = offset % length。

代码

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
        char temp;
        if(str.length == 0) return;
        if(offset == 0) return;
        if(str.length < offset) offset = offset % str.length;
        while(offset>0){
            temp = str[str.length-1];
            for(int i = str.length - 1; i > 0;i--){
                str[i] = str[i-1];
            }
            str[0]=temp;
            offset--;
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 难度:容易 要求: 给定一个字符串和一个偏移量,根据偏移量旋...
    柒黍阅读 5,454评论 0 1
  • 题目 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例对于字符串 "abcdefg".off...
    六尺帐篷阅读 5,062评论 1 2
  • 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)您在真实的面试中是否遇到过这个题?Yes样例对于字...
    DayDayUpppppp阅读 3,101评论 0 0
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,349评论 0 33
  • 01 和妹子刚开始交往的时候,老妈威逼利诱,愣是套走了妹子的联系方式。然后伪装成我姐,和妹子进行了一次交流互动,除...
    尹惟楚阅读 15,535评论 296 640