测试面试LeetCode系列:字符串的左旋转
题目
字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。
示例 1:
输入: s = "abcdefg", k = 2 输出: "cdefgab"
示例 2:
输入: s = "lrloseumgh", k = 6 输出: "umghlrlose"
限制:
- 1 <= k < s.length <= 10000
来源:LeetCode(力扣)
思路
1. 如果是python的话,可以直接对字符串进行切片,然后对切片后的字符串进行拼接。
2. 遍历字符串,在将k之前的字符串保存一份为a,将k之后的字符串再保存一份b,返回b+a即可。
实现
#解法1
class Solution(object): def reverseLeftWords(self, s, n): """ :type s: str :type n: int :rtype: str """ pre_str = s[:n] post_str = s[n:] return post_str+pre_str #解法2 class Solution(object): def reverseLeftWords(self, s, n): """ :type s: str :type n: int :rtype: str """ pre_str = "" post_str = "" for index,ch in enumerate(s): if index < n: post_str = post_str + ch else: pre_str = pre_str + ch return pre_str+post_str
各位大神,有其他思路欢迎留言~
博主:测试生财(一个不为996而996的测开码农)
座右铭:专注测试开发与自动化运维,努力读书思考写作,为内卷的人生奠定财务自由。
内容范畴:技术提升,职场杂谈,事业发展,阅读写作,投资理财,健康人生。
csdn:https://blog.csdn.net/ccgshigao
博客园:https://www.cnblogs.com/qa-freeroad/
51cto:https://blog.51cto.com/14900374
微信公众号:测试生财(定期分享独家内容和资源)