Python字符反转,Python字符串的反转
本文主要介绍Python中字符串反转的五种方法,并编写一个函数,其作用是对输入的字符串进行反转。下面文章详细介绍,需要的朋友可以参考一下。
00-1010前言方法1方法2方法3方法4方法5
目录
一道题目是实现一个反转字符串的函数,具体如下:
写一个函数,它的作用是反转输入的字符串。输入字符串以字符数组char[]的形式给出。
您必须就地修改输入数组,并使用O(1)的额外空间来解决这个问题,而不是将额外空间分配给另一个数组。
我们可以假设数组中的所有字符都是ASCII码表中可打印的字符。
示例 1:
输入:[h , e , l , l , o]
输出:[o , l , l , e , h]
示例 2:
输入:[H , a , n , n , a , h]
输出:[h , a , n , n , a , H]
自己动手,大概有以下几种方式。
前言
如果不考虑题目中提到的“就地修改输入数组”,可以通过中间列表的方式实现。
从列表的尾部向前遍历,可以通过如下2种方式定义索引:
def reverseString_1(self,s):
想法:借助一个中间变量temp,然后从S的尾部提取出来,把元素附加到temp上。
:参数s:
:返回:
temp=[]
对于范围内的I(透镜):
临时追加(s[len(s)-1-i])
返回温度
def reverseString_2(self,s):
想法:与方法4相同,但有另一种实现方式(与问题8中方法2所用的反向循环相同)
:参数s:
:返回:
temp=[]
对于I in range (len(s)-1,-1,-1) : # range表示索引范围,len(s)-1表示遍历的第一个元素(即从最后一个元素开始遍历);
#第一个-1表示最后一个位置,但由于遍历范围的右侧没有闭合,所以这里实际上是最后遍历的第一个元素;
#秒-1表示步长,每次为-1,即从后向前遍历。
临时追加(s[i])
返回温度
方法1
思考一下:
实际上,倒串可以转化为“首尾元素串交换”,如:第一位和最后一位交换,第二位和最后一位交换,第三位和最后一位交换。
[1,2,3,4,5,6]
[6,5,4,3,2,1]
这样就可以定义两个指针,一个从第一个地方向后遍历,一个从末端向前遍历;
然后,在每次遍历中交换两个位置的元素,直到遍历完中间的元素。
定义反向限制(自身,s):
:类型s:列表[str]
:rtype: None不返回任何内容,而是就地修改s。
I=0 #第一个指针,从头开始遍历
J=len(s)-1 #秒指针,从尾部开始遍历
而j i: # If ji,保持循环,直到两个指针相遇。
S[i],s[j]=s[j],s[i] #在2个位置交换元素
i=1
j -=1
返回s
方法2
这个方法比较迂回,提交的时候因为超时(系统给的数组太长)没有通过。但是自测的时候给几个数组,可以逆序输出。
由于思路如下:是逆序输出的,所以可以交换第一个和第二个元素,然后交换第二个和第三个元素……直到第一个元素移动到最后一个位置;
但这还没有结束。只是把第一个元素移到了最后。你需要重复上面的步骤,然后将原来的第二个元素(现在是第一个元素)移动到倒数第二个位置(注意:此时不能移动最后一个元素)。
按照上面的步骤,把所有元素移动一次,就大功告成了。
定义反向限制(自身,s):
想法:
:类型s:列表[str]
:rtype: None不返回任何内容,而是就地修改s。
n=0
而n个透镜:
i=0
对于范围(1,透镜-n):中的j
s[i],s[j]=s[j],s[i]
i=1
n=1
返回s
方法3
利用切片来实现倒序输出:
定义反向限制(自身,s):
想法:切片
S [33603360-1]表示反转s中的元素。
S [3360]表示阵列中的所有子模块。
S [3360]=S [33603360-1]表示将原数组反转并赋给S中的每个对应位置。
S=S [:3360-1]表示将S反转赋给新对象S,与原修改标题不一致。
:参数s:
:返回:
s[:]=s[:-1]
返回s
方法4
使用reverse()方法,该方法将反转原始列表(注意:反转仅对列表有效)。
def reverseString_6(self,s):
:参数s:
:返回:
反向开关()
返回s
不过reverse()方法的源码,会发现它其实就是利用的切片,如下:
关于python中字符串反转的五种方法的文章到此结束。关于Python中字符串反转的更多信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。