【题目】
【思路】
遍历字符串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)
【结果】
【收获】
" ".join(res)
用法:
在数组的元素之间加“ ”空格,变成一个整体。
res = ["i", "am", "happy"]
" ".join(res)
#res = "i am happy"
- 在python中,字符串是不可以改变对象,不能通过下标的方式直接赋值修改。同样的不可变对象还有:数字、字符串和元组。
tmp = s[i]
s[i] = s[j]
s[j] = tmp
所以在执行上面赋值操作的时候会出现以下报错:
TypeError: ‘str’ object does not support item assignment
- 关于数组操作的知识点:
for word in words:
#words = ['i', 'am', 'happy']
#这个语句执行,通过操作word,无法改变原数组words的值
#说明word是系统新创建的变量,并且copy了words中元素的值,但是指针并没有指向数组中的元素