我想大家一看到题目,就会有这种感觉:这很简单嘛,没有什么难度。事实也是这样的。不过我想跟大家分享一个超帅的方法,我相信你们看到后应该也会有我这种想法,好了,不罗嗦了,下面开始进入正题。
方法1
我想学过C/C++的朋友应该会给出这种解决方案:设置头尾指针,交换这两个数的位置,然后指针分别向中间移动一下,再交换两变量位置,直到首位指针第一次错位交叉。代码如下:
def reverse1(string):begin=0end=len(string)-1strlist=[i for i in string]while(begin<end):temp=strlist[begin]strlist[begin]=strlist[end]strlist[end]=tempbegin+=1end-=1return ''.join(strlist)
这种方法的缺点在于需要先将string处理成list,再进行反转。优点在于反转时只需要遍历一半的长度。
方法2
设置尾指针,然后输出变量,加入到一个新的list中,向左移动尾指针,直到所有的变量都加入到list中,返回新的list。代码如下:
def reverse2(string):strlist=[]i=len(string)-1while(i>=0):strlist.append(string[i])i-=1return ''.join(strlist)
这种方法已经很简洁了,这个问题到这应该差不多了,别急,再往下看看。
方法3
直接上代码,各位看好了!
def reverse3(string):return string[::-1]
只需要一行代码就搞定了!充分利用了python灵活的特点,不错,值得借鉴!
本文到此结束,欢迎再来!
本文介绍了三种不同的字符串反转方法,包括使用头尾指针交换位置、从尾部逐个添加元素到新列表及利用Python切片特性实现简洁反转。
7020

被折叠的 条评论
为什么被折叠?



