题解 | #左旋转字符串#

左旋转字符串

https://www.nowcoder.com/practice/12d959b108cb42b1ab72cef4d36af5ec

//这题比较简单的做法是用额外的空间来做。但用原地空间进行操作才更有挑战。
//同样,只要把需要左移的部分字符串,和不需要左移的部分字符串,分别反转后,再反转整个字符串,即可完成。
class Solution {
  public:
    void reversestr(string &str,int begin,int end) {
        int j = 0;
        for (int i = begin; i < (begin+end)/2; i++) {
            swap(str[i], str[end - j - 1]);
            j++;
        }
    }
    string LeftRotateString(string str, int n) {
        if(str.empty())return str;
        if(str.size()<n)//如果左移的位数比str的size大
        {
            n=n%str.size();
        }
        reversestr(str,0, n);
        reversestr(str,n, str.size());
        reversestr(str,0, str.size());
        return str;
    }
};

全部评论

相关推荐

头像
04-17 09:29
已编辑
湖南农业大学 后端
睡姿决定发型丫:本硕末9也是0offer,简历挂了挺多,只有淘天 美团 中兴给了面试机会,淘天二面挂,美团一面kpi面,中兴一面感觉也大概率kpi(虽然国企,但一面0技术纯聊天有点离谱吧)
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务