翻转字符串里的单词
1、题目
翻转字符串中的单词,比如字符串 ‘the sky is blue’
翻转以后是’bule is sky the’
2、解题思路
先将每个单词进行翻转,然后对整个字符串进行翻转,这样,两次翻转后就可以获得题目要求的效果
3、示例代码
#coding=utf-8
def reverse_str(s):
lst = list(s)
flag = False
start = -1 #单词开始位置
end = -1 #单词结束位置
# 遍历字符串,翻转一个单词,最后整体翻转
for index ,item in enumerate(lst):
if not flag and not item == ' ':
flag = True
start = index
if flag and item == ' ':
flag = False
end = index -1
reverse_str_ex(lst,start,end)
# 注意单词结尾
if flag:
end = len(lst)-1
reverse_str_ex(lst,start,end)
return ''.join(lst[::-1])
def reverse_str_ex(lst,start,end):
mid = (start+end)/2
if mid == start:
mid = end
for i in range(start,mid):
tmp = lst[i]
lst[start] = lst[end-i+start]
lst[end-i+start] = tmp
print reverse_str('the sky is blue')