python實現字符串的倒序(五種)

今天看到一個面試題,說實現一串字符串的倒序。如:“abcde" --> "edcba"

 

  1. 使用python的特性
    s = "abcde"
    
    def str_reverse1(s):
    
        return s[::-1]
    
    if __name__ == '__main__':
        rs = str_reverse1(s)
        print(rs)

     

  2. 使用列表
    s = "abcde"
    
    def str_reverse2(s):
        # l = list(s).reverse()     #錯誤
        l = list(s)
        l.reverse()
        return "".join(l)
    
    if __name__ == '__main__':
        rs = str_reverse2(s)
        print(rs)

     

  3. 使用循環
    s = "abcde"
    
    def str_reverse3(s):
        s1 = ""
        for s2 in s[::-1]:
            s1 += s2
    
        return s1
    
    if __name__ == '__main__':
        rs = str_reverse3(s)
        print(rs)

     

  4. 使用庫collections
    from collections import deque
    s = "abcde"
    
    def str_reverse4(s):
        dq = deque(s)       # or      dq = deque()
        dq.reverse()        #         dq.extendleft(s)
        return "".join(dq)
    
    if __name__ == '__main__':
        rs = str_reverse4(s)
        print(rs)

     

  5. 使用遞歸
    s = "abcde"
    
    def str_reverse5(s):
    
        if len(s) <= 1:
            return s
    
        return str_reverse5(s[1:])+s[0]
    
    if __name__ == '__main__':
        rs = str_reverse5(s)
        print(rs)

     

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章