字符串反转-基于Python的6种方法比较(最全总结版本!)

本文详细总结了Python中实现字符串反转的六种方法,适合面试复习和提升编程技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串反转是面试中常考的题型之一,下面用python进行了一下总结。

string = 'abcdef'

def string_reverse0(string):   #使用自带reverse方法
    l = list(string)
    l.reverse()
    return ''.join(l)


def string_reverse1(string):   #利用字符串索引
    return string[::-1]


def string_reverse2(string):   #依次前后相互替换
    t = list(string)
    l = len(t)
    for i, j in zip(range(l - 1, 0, -1), range(l // 2)):
        t[i], t[j] = t[j], t[i]
    return "".join(t)


def string_reverse3(string):   #递归方法
    if len(string) <= 1:
        return string
    return string_reverse3(string[1:]) + string[0]


from collections import deque   #使用deque模块
def string_reverse4(string):
    d = deque()                  #创建一个空的双队列
    d.extendleft(string)          #从队列左边扩展一个列表的元素
    return ''.join(d)


def string_reverse5(string):             #列表推导式
    return ''.join(string[i] for i in range(len(string) - 1, -1, -1))


#试验效率

import time
TIMES = 100000
def test(f, s,name):
    st = time.time()
    i = 0
    while (i<TIMES):
        f(s)
        i = i+1
    print(f(s),'  %s %ss'%(name, time.time()-st))



test(string_reverse0,string,"test(string_reverse0)")
test(string_reverse1,string,"test(string_reverse1)")
test(string_reverse2,string,"test(string_reverse2)")
test(string_reverse3,string,"test(string_reverse3)")
test(string_reverse4,string,"test(string_reverse4)")
test(string_reverse5,string,"test(string_reverse5)")
输出结果:
fedcba   test(string_reverse0) 0.09120917320251465s
fedcba   test(string_reverse1) 0.03125333786010742s
fedcba   test(string_reverse2) 0.2656519412994385s
fedcba   test(string_reverse3) 0.32213616371154785s
fedcba   test(string_reverse4) 0.1020510196685791s
fedcba   test(string_reverse5) 0.24791359901428223s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值