循环左移字符串

  1. 题目描述
    1. 解题思路

题目描述

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

解题思路

  • 很原始的解法,利用string 重载了[]运算符
class Solution {
public:
    string LeftRotateString(string str, int n) {
        string right;
        string left;
        for (int i = 0; i < n;++i){// 保存前n个字符
            right[i] = str[i];
        }
        int index = 0;
        for (int i = n;i < str.length();++i) { // 保存剩余的额字符
            left[index++] = str[i];
        }
        
        int j = 0;
        for (int i = index;i < str.length();++i) {// 拼接字符串
            left[i] = right[j++];
        }
        return left;
    }
};

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1056615746@qq.com

文章标题:循环左移字符串

字数:220

本文作者:攀登

发布时间:2019-12-26, 23:12:31

最后更新:2024-06-15, 15:53:35

原始链接:http://jiafeimao-gjf.github.io/2019/12/26/sword-%E5%B7%A6%E6%97%8B%E8%BD%AC%E5%AD%97%E7%AC%A6%E4%B8%B2/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏