Python字符串翻转:面试题

方法一:反转列表法

a = 'abcdefg'
b = list(a)
b.reverse()
b = ''.join(b)
print(b)

方法二:循环反向迭代法
字符串属于序列的一种,使用for循环遍历字符串,然后反向赋值给变量b,输出字符串反转

a = 'abcdefg'
b=''
for i in a:
    b= i+b
print(b)

方法三:反向循环迭代法

a = 'abcdefg'
b=''
for i in a[::-1]:
    b+=i
print(b)

对字符串进行切片,并设置步长为-1,进行倒序。最后达到反转的效果
方法四:倒序切片法

a = 'abcdefg'
b=a[::-1]
print(b)

方法五:遍历索引法

a = 'abcdefg'
b=''
for i in range(1,len(a)+1):
    b= b+a[-i]
print(b)

提取出字符串的索引,遍历索引数字,然后倒序提取字母,最后拼接
方法六:列表弹出法

a = 'abcdefg'
a= list(a)
b=''
while len(a)>0:
    b= b+a.pop()
print(b)

列表的pop()方法即弹出其中一个元素,默认为最后一个。
方法七:列表解析法

a = 'abcdefg'
b= ''.join(i for i in a[::-1])
print(b)

方法八:累积相加法

a = 'abcdefg'
from  functools import reduce
def f(x,y):
    return y+x
b=reduce(f,a)
print(b)

方法九:匿名函数法

a = 'abcdefg'
from  functools import reduce
b=reduce(lambda x,y:y+x,a)
print(b)

方法十:双向队列排序法

a = 'abcdefg'
import collections
b= collections.deque()
for i in a:
    b.appendleft(i)
b=''.join(b)
print(b)

遍历字符串,向左添加双向队列中,最后join()方法合并

猜你喜欢

转载自blog.csdn.net/GG9527li/article/details/86700117