557. 反转字符串中的单词 ③_python

【题目】

【思路】
遍历字符串s,如果检测到 “ ”空格,反转空格前的字符串,然后放进res数组里。

【代码】

class Solution(object):
    def reverseWords(self,  s: str):
        """
        :type s: str
        :rtype: str
        """
        res = []
        last = -1
        ans = ''
        ls = len(s)
        for i in range(ls):
            if s[i] == " " or i==ls-1:
                if i==ls-1:  #当遍历到最后一个,为了输出所有字符 i=ls
                    i = ls
                for j in range(i-1,last,-1):
                    ans += s[j]
                res.append(ans)
                ans = ''
                last = i
        return " ".join(res)

【结果】
在这里插入图片描述
【收获】

  1. " ".join(res)用法:
    在数组的元素之间加“ ”空格,变成一个整体。
res = ["i", "am", "happy"]
" ".join(res)
#res = "i am happy"
  1. 在python中,字符串是不可以改变对象,不能通过下标的方式直接赋值修改。同样的不可变对象还有:数字、字符串和元组。
tmp = s[i]
s[i] = s[j]
s[j] = tmp

所以在执行上面赋值操作的时候会出现以下报错:

TypeError: ‘str’ object does not support item assignment

参照高手总结

  1. 关于数组操作的知识点:
for word in words:
#words = ['i', 'am', 'happy']
#这个语句执行,通过操作word,无法改变原数组words的值
#说明word是系统新创建的变量,并且copy了words中元素的值,但是指针并没有指向数组中的元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值