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
博客提出不使用split和reverse方法,将字符串“you are student”转换为“student are you”的问题。给出的思路是先将单词逆序,再将整个字符串逆序,并展示了转换过程,还提到该方式可处理前后有空格的情况。
343

被折叠的 条评论
为什么被折叠?



