题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。标点符号和普通字母一样处理。
def reverse_string(s):
s= list(s)
reverse(s,0,len(s)-1)
begin = 0
for i,c in enumerate(s):
if c==' ':
end = i-1
reverse(s,begin,end)
begin = i+1
return ''.join(s)
def reverse(arry,begin,end):
while begin<end:
arry[begin],arry[end] = arry[end],arry[begin]
begin +=1
end -=1
注:采用的思想为两次翻转。先全部翻转,然后根据空格分隔的每个单词进行第二次翻转。由于Python里string不可变,所以要通过列表来进行操作。