本题选自leetcode图解算法数据结构一书
某公司门禁密码使用动态口令技术。初始密码为字符串 password,密码更新均遵循以下步骤:
设定一个正整数目标值 target
将 password 前 target 个字符按原顺序移动至字符串末尾
请返回更新后的密码字符串。
示例 1:
输入: password = "s3cur1tyC0d3", target = 4
输出: "r1tyC0d3s3cu"
示例 2:
输入: password = "lrloseumgh", target = 6
输出: "umghlrlose"
提示:
1 <= target < password.length <= 10000
法一:利用str的+
python
class Solution(object):
def dynamicPassword(self, password, target):
"""
:type password: str
:type target: int
:rtype: str
"""
return password[target:]+password[:target]
法二:变成列表直接切片,简单易懂,本来想写循环,感觉麻烦了
python
class Solution(object):
def dynamicPassword(self, password, target):
"""
:type password: str
:type target: int
:rtype: str
"""
p=list(password) #字符串无法直接使用append,变为列表再用
p.append(password[0:target]) #切片,找出需要移动的部分,注意[]的区间是左闭右开
return "".join(p[target:len(p)+target]) #切片输出,从下标target开始,到右边结束,注意边界右边是开区间,所以取不到