LeetCode题解之左旋转字符串

2020-07-02  本文已影响0人  l1fe1

左旋转字符串

题目描述

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

示例 1:

输入: s = "abcdefg", k = 2
输出: "cdefgab"

示例 2:

输入: s = "lrloseumgh", k = 6
输出: "umghlrlose"

限制:

解题思路

方法一:直接使用substring函数进行切分

使用substring函数切分获取子串然后再进行拼接。

复杂度分析

代码实现

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

方法二:遍历字符串进行拼接

遍历字符串的每一个字符进行拼接。

复杂度分析

代码实现

class Solution {
    public String reverseLeftWords(String s, int n) {
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < s.length(); i ++) {
            sb.append(s.charAt((i + n) % s.length()));
        }
        return sb.toString();
    }
}
上一篇下一篇

猜你喜欢

热点阅读