003_入门_python练习题:旋转字符串

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']

你可能感兴趣的:(003_入门_python练习题:旋转字符串)