循环左移字符串

  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

💰

Title:循环左移字符串

Count:220

Author:攀登

Created At:2019-12-26, 23:12:31

Updated At:2024-06-15, 15:53:35

Url: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/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation