1.问题描述
给定一个字符串(以字符数组的形式)和一个偏移量,根据偏移量原地从左向右旋转字符串
- 输入str="abcdefg",offset=3 输出“efgabcd”
- 输入str="abcdefg",offset=0,输出“abcdefg”
- 输入str="abcdefg",offset=1,输出“gabcdef”
法一:参考答案
#输入str="abcdefg",offset=3 输出“efgabcd”
#输入str="abcdefg",offset=0,输出“abcdefg”
#输入str="abcdefg",offset=1,输出“gabcdef”
#法一:
class Solution:
#参数s;字符列表
#参数offset:整数
#返回值:无
def rotateString(self,s,offset):
if len(s)>0:
offset = offset%len(s) #取余数
temp=(s+s)[len(s)-offset:2*len(s)-offset] #切片
for i in range(len(temp)):
s[i]=temp[i]
#主函数
if __name__== "__main__":
s=["a","b","c","d","e","f","g"]
offset=3
solution = Solution()
solution.rotateString(s,offset)
print("输入:s=",["a","b","c","d","e","f","g"]," ","offset = ",offset)
print("输出:s=",s)
输入:s= ['a', 'b', 'c', 'd', 'e', 'f', 'g'] offset = 3
输出:s= ['e', 'f', 'g', 'a', 'b', 'c', 'd']
法二:我的想法
#法二:
class Solution():
def rotateString(self,s,offset):
if offset > 0:
rs=s[-offset:]+s[0:(len(s)-offset)]
else:
rs=s
if __name__== "__main__":
s=["a","b","c","d","e","f","g"]
offset=3
solution = Solution()
solution.rotateString(s,offset)
print("输入:s=",["a","b","c","d","e","f","g"]," ","offset = ",offset)
print("输出:rs=",rs)
输入:s= ['a', 'b', 'c', 'd', 'e', 'f', 'g'] offset = 3
输出:rs= ['e', 'f', 'g', 'a', 'b', 'c', 'd']