DCXabc 2020-04-29
# -*- coding:utf-8 -*-
class Solution:
def LeftRotateString(self, s, n):
# write code here
ss = ‘‘
if len(s)==0 or n<0 or n>len(s):
return ss
if n==0 or n==len(s):
return s
ss = s[n:]+s[0:n]
return ss解法2
利用三次翻转
# -*- coding:utf-8 -*-
class Solution:
def LeftRotateString(self, s, n):
# write code here
# 使用翻转
if len(s) == 0 or n > len(s):
return ‘‘
if n == 0 or n == len(s):
return s
s = self.reverse(s, 0, n - 1)
s = self.reverse(s, n, len(s) - 1)
s = self.reverse(s, 0, len(s) - 1)
return ‘‘.join(s)
def reverse(self, s, start, end):
s = list(s)
while start < end:
temp = s[start]
s[start] = s[end]
s[end] = temp
start += 1
end -= 1
return snote
在python中,字符串是不可变对象,
不能通过下标的方式直接赋值修改。同样的不可变对象还有:数字、字符串和元组。
所以修改时,可以将字符串转换为列表再连接为字符串
>>> a = " a b c ". # replace主要用于字符串的替换replace. # join为字符字符串合成传入一个字符串列表,split用于字符串分割可以按规则进行分割。>>> c =