劍指Offer(Python多種思路實現):翻轉字符串
面試58題:
題目:翻轉字符串
題:牛客最近來了一個新員工Fish,每天早晨總是會拿着一本英文雜誌,寫些句子在本子上。同事Cat對Fish寫的內容頗感興趣,有一天他向Fish借來翻看,但卻讀不懂它的意思。例如,“student. a am I”。後來才意識到,這傢伙原來把句子單詞的順序翻轉了,正確的句子應該是“I am a student.”。Cat對一一的翻轉這些單詞順序可不在行,你能幫助他麼?
解題思路一:Python特性
class Solution:
def ReverseSentence(self, s):
# write code here
temp=s.split()
if len(temp)==0:
return s
return ' '.join(s.split()[::-1])
解題思路二:
class Solution:
def ReverseSentence(self, s):
# write code here
if s==None or len(s)<=0:
return ''
s=list(s)
s=self.Reverse(s)
pStart=0
pEnd=0
listTemp=[]
result=''
#print(s)
while pEnd<len(s):
if pEnd==len(s)-1:
#print(self.Reverse(s[pStart:]))
listTemp.append(self.Reverse(s[pStart:]))
break
if s[pStart]==' ':
pStart +=1
pEnd +=1
listTemp.append(' ')
elif s[pEnd]==' ':
#print(self.Reverse(s[pStart:pEnd]))
listTemp.append(self.Reverse(s[pStart:pEnd]))
pStart=pEnd
else:
pEnd +=1
print(listTemp)
for i in listTemp:
result+=''.join(i)
return result
def Reverse(self,s):
# s是一個list列表
start=0
end=len(s)-1
while(start<end):
s[start],s[end]=s[end],s[start]
start+=1
end-=1
return s