字符串反转(按单词正序输出),保留并打印所有空格。

这是一个作业,用了好久写出来的,写完后,感觉我的思维方式不适合学编程。。。


#字符串按单词反转(必须保留所有空格)
a='Jane love China!'#把字符串存入列表
#a=input('请输入字符串(用引号引起来,,,):')
li=list()#用来存放空格所在位置的列表
n=-1
for i in a:#遍历字符串
   # print i
    b=i.isspace()#判断i是不是空格
    if b==True:
        n=a.index(' ',n+1)#从上一次搜索结果开始
        #print n
        li.append(n)#将空格位置索引加入列表
li.append(len(a))#将总的字符数加入列表
print li#打印空格位置
le_li=len(li)
n=0
while n<le_li:
    print a[li[le_li-n-2]+1:li[le_li-n-1]],#打印出每个单词(有一个问题,就是标点符号算在单词内了)
    if n<le_li-1:
        print a[li[n]],     #(打印空格,位置是除li最后一个元素的元素)
    n+=1
if n==le_li:
        print a[0:li[le_li-n]]#打印最前面的单词


老师写的:

def resverse(str_list,start,end):
    while start<end:
        str_list[start],str_list[end]=str_list[end],str_list[start]
        start=start+1
        end=end-1


setence='I love China!'
str_list=list(setence)
i=0
while i<len(str_list):
    if str_list[i]!=' ':
        start=i
        end=start+1
        while (end<len(str_list)) and (str_list[end]!=' '):
            end+=1
        resverse(str_list,start,end-1)
        i=end
    else:
        i+=1
str_list.reverse()
print(' '.join(str_list))

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值