offer58 II. 左旋转字符串

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解法:1允许切片的话可以直接切片拼接
2.如果不允许切片则新建一个 list(Python)、StringBuilder(Java) ,记为 resres ;
先向 resres 添加 “第 n + 1n+1 位至末位的字符” ;
再向 resres 添加 “首位至第 nn 位的字符” ;
将 resres 转化为字符串并返回。
python
解法一

class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        return s[n:]+s[:n]

解法二

class Solution:
    def reverseLeftWords(self, s: str, n: int) -> str:
        res = []
        for i in range(n,len(s)):
            res.append(s[i])
        for i in range(n):
            res.append(s[i])
        return "".join(res)

java
解法一

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

解法二

public class Offer58 {
    public String reverseLeftWords(String s, int n) {
        StringBuilder res = new StringBuilder();
        for (int i = n;i < s.length();i++){
            res.append(s.charAt(i));
        }
        for (int i = 0;i < n;i++){
            res.append(s.charAt(i));
        }
        return res.toString();
    }
}
posted @ 2022-06-17 11:32  D_WWW  阅读(28)  评论(0)    收藏  举报