上一篇介绍字符串反转:字符串’hello’变成’olleh’,也就是反转字符串,尽量不用Python的函数,尽量节省时间与空间。
这次句子反转,是在字符串反转的基础上的再次反转。
要求:将句子’hello liming’变成’liming hello’(句子反转),尽量不用Python的函数,尽量节省时间与空间。
sete = 'hello liming'
# 单词反转
def reverse_string(s):
s = list(s)
len_s = len(s)
for i in range(len_s//2):
temp0 = s[i]
temp1 = s[len_s-i-1]
s[i] = temp1
s[len_s-i-1] = temp0
s = ''.join(s)
return s
# 句子反转
def reverse_setence(sete):
len_sete = len(sete)
spa_loc = []
reverse_per_word = []
for i in range(len_sete):
if sete[i]==' ':
if spa_loc == []:
reverse_per_word.append(reverse_string(sete[:i]))
else:
reverse_per_word.append(reverse_string(sete[spa_loc[-1]+1:i]))
spa_loc.append(i)
else:
pass
reverse_per_word.append(reverse_string(sete[spa_loc[-1]+1:]))
reverse_per_word = ' '.join(reverse_per_word)
reverse_per_word = reverse_string(reverse_per_word)
return reverse_per_word
# 输出
reverse_setence(sete)
Watch_dou
发布了241 篇原创文章 · 获赞 263 · 访问量 54万+
关注