上一篇介紹字符串反轉:字符串’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)