目录
🍕题目
🍔方法一:暴力
python内置反转列表的函数 reserve
🍟代码
class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ s = s.reverse()
🍔方法二:位运算
这是力扣一位老哥的想法,其实就是两两相互替换,开头元素和末尾替换。
🍟代码
class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ h=len(s)//2 for i in range(h): s[i],s[~i]=s[~i],s[i]
🍔方法三:双指针
左右两指针交换数据向中间缩进即可
🍟代码
class Solution: def reverseString(self, s: List[str]) -> None: """ Do not return anything, modify s in-place instead. """ left,right = 0,len(s)-1 while left < right: s[left],s[right] = s[right],s[left] left += 1 right -= 1
🍕题目
🍔方法一:
最简单的思路就是将字符串分割成单词列表 然后把每个单词反转切片
🍟 代码
class Solution(object): def reverseWords(self, s): return " ".join(word[::-1] for word in s.split(" "))
🍔方法二:
利用两次切片,不需遍历
先反转单词列表 再反转字符串
以字符串 “I love heart" 为例:
1.s.split(" ") 将字符串分割成单词列表:
['I', 'love', ' heart']
2.s.split(" ")[::-1] 将单词列表反转:
[ 'heart', 'love', 'I']
3." ".join(s.split(" ")[::-1]) 将单词列表转换为字符串,以空格分隔:
"heart love I"
4." ".join(s.split(" ")[::-1])[::-1] 将字符串反转:
”I evol traeh“
🍟代码
class Solution(object): def reverseWords(self, s): return " ".join(s.split(" ")[::-1])[::-1]