美文网首页
左旋转字符串

左旋转字符串

作者: 李伟13 | 来源:发表于2020-04-26 10:39 被阅读0次

题目描述

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

第一想法

  • 截取前面的n个字符串
  • 切分原始字符串
  • 拼接

AC代码

class Solution {
public:
    string LeftRotateString(string str, int n) {
        if(str == "") return str;
        string str1(str, 0, n);
        string str2 = str.substr(n);
        return str2.append(str1);
    }
};

看了讨论区

  • 没考虑 n > length 的情况
  • 有更好的思路.
class Solution {
public:
    string LeftRotateString(string str, int n) {
        int len = str.length();
        if(len == 0) return "";
        n %= len;
        str += str;
        return str.substr(n, len);
    }
};

知识点

string字符串的处理

string类型初始化(部分)
string str7(str1,6);              // str7 = "world"     从字符串str1第6个字符开始到结束,拷贝到str7中
string str8 = string(str1,6);     // str8 = "world"
string str9(str1,0,5);            // str9 = "hello"     从字符串str1第0个字符开始,拷贝5个字符到str9中
string的分割
string str = "The apple thinks apple is delicious";
//s.substr(pos,n)                      得到字符串s位置为pos后面的n个字符组成的串
string s1 = str.substr(4,5);           // s1 = "apple"

//s.substr(pos)                        得到字符串s从pos到结尾的串
string s2 = str.substr(17);            // s2 = "apple is delicious"

方法

遇到字符串循环的情况,可以将字符串复制到最后处理.

相关文章

  • LeetCode题解之左旋转字符串

    左旋转字符串 题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左...

  • 面试题58 - II. 左旋转字符串

    左旋转字符串 题目描述 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左...

  • AVLtTree

    左旋转 右旋转 双旋转 左旋右旋规律 右旋右低,左旋左低,左高右旋,右高左旋左旋动左。右旋动右。新节点代替当前根节...

  • 旋转字符串 (lintcode:rotate-string)

    旋转字符串 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 例如: 对于字符串 "abcdefg...

  • 旋转字符串

    旋转字符串

  • lintCode题解(8)

    标签(空格分隔): lintCode 旋转字符串 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)...

  • 判断字符串str1是否是字符串str2的旋转词

    判断字符串str1是否是字符串str2的旋转词 对字符串的旋转操作描述如下:例如: str = "123456" ...

  • 牛客/力扣算法题

    1.逆转字符串 2.旋转字符串

  • LintCode算法刷题之旋转字符串

    链接:旋转字符串 描述 给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转...

  • 算法精选题总结之字符串类

    1.字符串旋转2.字符串包含3.字符串的全排列4.字符串转换成整数5.回文判断6.最长回文子串 1.字符串旋转 给...

网友评论

      本文标题:左旋转字符串

      本文链接:https://www.haomeiwen.com/subject/ofqfwhtx.html