1、问题描述:
you are student ------>结果为:student are you, 考虑不使用split和reverse 方法
2、 思路:
按照单词逆序,然后整个字符串逆序。
input your words:you are student
First change:uoy era tneduts
Second change:student are you
3.话不投机,直接上代码:
# 交换
def swap(str1,begin,to):
temp = str1[begin]
str1[begin]= str1[to]
str1[to]=temp
#字符串反转
def turnover(lists, begin,to):
while(begin<to):
swap(lists,begin,to)
begin= begin+1
to= to-1
return lists
test = input("input your words:")
list1 = list(test)
len1 = len(list1)
index2 = [-1]
j=0
while(j< len1):
if list1[j]==' ':
index2.append(j)
j= j+1
index2.append(len1) #构建空格位置的list,其实就是达到一个split的目的
index1 = index2
for i in range(len(index1)-1):
turnover(list1,index1[i]+1,index1[i+1]-1)
print("First change:",end='')
for i in list1:
print(i,end='')
#上面是完成了第一次反转,按照单词反转
print()
print("Second change:",end='')
turnover(list1,0,len1-1)
#把字符串整体反转
for i in list1:
print(i,end='')
上面这种方式通用对于前后有空格的情况可以处理。
input your words: you are a student
First change: uoy era a tneduts
Second change:student a are you
input your words:you are a student
First change:uoy era a tneduts
Second change: student a are you