Leetcode 344题 Reverse String
Write a function that reverses a string. The input string is given as an array of characters char[].
Do not allocate extra space for another array, you must do this by modifying the input array in-place with O(1) extra memory.
You may assume all the characters consist of printable ascii characters.
Example 1:
Input: ["h","e","l","l","o"]
Output: ["o","l","l","e","h"]
Example 2:
Input: ["H","a","n","n","a","h"]
Output: ["h","a","n","n","a","H"]
如何反转字符串,注意在本地操作。不要有额外的空间。
这个题目的编辑器有点儿迷,本来其实s[::-1]是最方便的反转方法。
我在我的编辑器中
s = s[::-1] 就可以成功返回了。 在Leetcode这道题里却不能返回,那就再多一步吧。
class Solution:
def reverseString(self, s: List[str]) -> None:
a = s[::-1]
for i in range(len(s)):
s[i] = a[i]
这样就用了多余的空间,不太严谨。
用python中首尾的交换方法。
class Solution:
def reverseString(self, s: List[str]) -> None:
l = len(s)
for i in range(l//2):
s[i],s[l-i-1] = s[l-i-1],s[i]
从一半开始,总数是单数,中间的不换。 总数是双数,刚好中间的也换了。
s[i],s[l-i-1] = s[l-i-1],s[i]
表示首尾相换。
疫情中的英国,
最近压力真大,
加油!
24/05/2020