左旋转字符串
左旋转字符串
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
示例 1:
输入: s = “abcdefg”, k = 2
输出: “cdefgab”
思路
- 方法1.切片,利用字符串 str = [ i:j:k]
- 方法2.字符串追加,str.join()
- 方法3.反转
列表list内置方法——list.reverse(),返回值None
python自带的方法类——reversed(),返回反转后的迭代器iterator ,需通过遍历或list()或next()等方法获取作用后的值
先反转 头至n 的字符,再反转 n到尾 的字符,最后总体反转
Python
def reverseLeftWords(self, s, n):
# 方法1 切片
return s[n:] + s[:n]
# 方法2 字符串追加
res = []
for i in range( n , len(s)):
res.append(s[i])
for i in range(n):
res.append(s[i])
return ''.join(res)
# 方法3 反转
s = list(s)
s[0:n] = reversed(s[0:n])
s[n:] = reversed(s[n:])
s.reverse()
return "".join(s)
"""
:type s: str
:type n: int
:rtype: str
"""
C++
string reverseLeftWords(string s, int n) {
reverse(s.begin(),s.begin() + n);
reverse(s.begin() + n,s.end());
reverse(s.begin(),s.end());
return s;
}