前段時(shí)間看到letcode上的元音字母字符串反轉(zhuǎn)的題目坐慰,今天來研究一下字符串反轉(zhuǎn)的內(nèi)容疯特。主要有三種方法:
1.切片法(最簡(jiǎn)潔的一種)
#切片法
def reverse1():
s=input("請(qǐng)輸入需要反轉(zhuǎn)的內(nèi)容:")
return s[::-1]
reverse1()
#運(yùn)行結(jié)果
In [23]: def reverse1():
...: s=input("請(qǐng)輸入需要反轉(zhuǎn)的內(nèi)容:")
...: return s[::-1]
...:
...: reverse1()
請(qǐng)輸入需要反轉(zhuǎn)的內(nèi)容:你是一個(gè)小南瓜
Out[23]: '瓜南小個(gè)一是你'
參考stackflow上的答案淹办。
原理是:This is extended slice syntax. It works by doing [begin:end:step] - by leaving begin and end off and specifying a step of -1, it reverses a string.
2.遞歸
#遞歸反轉(zhuǎn)
def reverse2(s):
if s=="":
return s
else:
return reverse2(s[1:])+s[0]
reverse2("sidfmawsmdisd是當(dāng)面問")
#運(yùn)行結(jié)果
In [24]: def reverse2(s):
...: if s=="":
...: return s
...: else:
...: return reverse2(s[1:])+s[0]
...:
...: reverse2("sidfmawsmdisd是當(dāng)面問")
Out[24]: '問面當(dāng)是dsidmswamfdis'
3.借用列表印荔,使用reverse()方法
Python中自帶reverse()函數(shù)攻询,可以處理列表的反轉(zhuǎn)从撼,來看示例:
In [25]: l=['a', 'b', 'c', 'd']
...: l.reverse()
...: print (l)
['d', 'c', 'b', 'a']
reverse()函數(shù)將列表的內(nèi)容進(jìn)行了反轉(zhuǎn),借助這個(gè)特性钧栖,可以先將字符串轉(zhuǎn)換成列表低零,利用reverse()函數(shù)進(jìn)行反轉(zhuǎn)后婆翔,再處理成字符串。
#借用列表掏婶,使用reverse()方法
def reverse3(s):
l=list(s)
l.reverse()
print("".join(l))
reverse3("soifmi34pomOsprey啃奴,,是")
#運(yùn)行結(jié)果
In [26]: def reverse3(s):
...: l=list(s)
...: l.reverse()
...: print("".join(l))
...:
...: reverse3("soifmi34pomOsprey气堕,纺腊,是")
...:
是,茎芭,yerpsOmop43imfios
今天的學(xué)習(xí)就到這里揖膜。貼上letcode上元音字母反轉(zhuǎn)的地址,待后續(xù)研究梅桩。