美文网首页
面试题58_II_左旋转字符串

面试题58_II_左旋转字符串

作者: shenghaishxt | 来源:发表于2020-02-19 15:23 被阅读0次

题目描述

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。

题解一

直接用Java String的API操作,那真是再简单不过了。。。

class Solution {
    public String reverseLeftWords(String s, int n) {
        return s.substring(n, s.length()) + s.substring(0, n);
    }
}

题解二

但由于本题的核心是考察对于字符串翻转的灵活运用,所以上面使用API的解法就失去了其意义。受到上题翻转单词顺序的启发,我们可以将字符串分为两部分,前n个字母为一部分,剩下的字母为一部分。先单独翻转这两部分,然后再对整体字符串一起翻转。例如对于"abcdefg",n为2。分别翻转"ab"和"cdefg",得到bagfedc,然后再对整个字符串进行翻转即可得到"cdefgab"。

这个思路可用线性代数的矩阵表示为
YX = (X^T Y^T)^T

下面是参考代码:

class Solution {
    public String reverseLeftWords(String s, int n) {
        if (s.length() < n)
            return "";
        char[] chars = s.toCharArray();
        reverse(chars, 0, n-1);
        reverse(chars, n, chars.length-1);
        reverse(chars, 0, chars.length-1);

        // 字符数组转化为字符串
        return String.valueOf(chars);
    }

    private void reverse(char[] chars, int left, int right) {
        if (left > right)
            return;
        while (left < right) {
            char temp = chars[left];
            chars[left++] = chars[right];
            chars[right--] = temp;
        }
    }
}

相关文章

  • 面试题58_II_左旋转字符串

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

  • 2020-05-25 第一题

    面试题58 - II. 左旋转字符串 难度简单30 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部...

  • LeetCode刷题(一)

    面试题58 - II. 左旋转字符串 题目:字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义...

  • LeetCode题解之左旋转字符串

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

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

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

  • 剑指offer第二版-58.2.左旋转字符串

    本系列导航:剑指offer(第二版)java实现导航帖 面试题58.2:左旋转字符串 题目要求:实现一个函数完成字...

  • AVLtTree

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

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

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

  • 旋转字符串

    旋转字符串

  • lintCode题解(8)

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

网友评论

      本文标题:面试题58_II_左旋转字符串

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