344.反转字符串
class Solution:
def reverseString(self, s: List[str]) -> None:
"""
Do not return anything, modify s in-place instead.
"""
for i in range(len(s)//2):
s[i],s[len(s)-1-i]=s[len(s)-1-i],s[i]
思路:寻找对称轴,交换数组中对称的。
如len(s)==4,交换s[0]和s[3];s[1]和s[2]
如len(s)==5,交换s[0]和s[4];s[1]和s[3];s[2]和自己交换(当然可以分奇偶,但是为了代码简便就这样,对时间复杂度和空间复杂度没什么影响)
557. 反转字符串中的单词III
【注】区别于344。344给的是字符数组,而557需要把字符串转化为字符数组,然后转变成字符串。
class Solution:
def reverseWords(self, s: str) -> str:
return ' '.join(s.split()[::-1])[::-1]
思路:
1.s.split() 这是把s字符串转化为字符数组。变成['Let's','take','Leetcode','contest']
2.s.split()[::-1] 这是把字符数组倒序。变成['contest','Leetcode','take','Let's']
3.' '.join(s.split()[::-1]) 这是把字符数组变成字符串,用' '(空格联接)变成['contest Leetcode take Let's']
4.' '.join(s.split()[::-1])[::-1] 这是把字符串倒过来,即变成['s'teL ekat edocteeL tsetnoc']