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