递归使字符串逆序,要求O(1)的空间
分析:
普通的递归,空间肯定不是O(1),需要优化,可以考虑将其变为尾递归,C/C++对尾递归有优化,其空间就是O(1)
递归的思路
- 从输入字符串中获取前导字符和尾随字符,即 str[0] and str[n-1].
- 就地交换前导字符和末尾字符
- 递归调用函数来反转剩余的字符串,也就是 reverseString(str[1…n-2]).
正确解法
普通递归的解法时间o(n),空间O(n)
class Solution(object):
def reverseString(self, s):
"""
:type s: List[str]
:rtype: None Do not return anything, modify s in-place instead.
"""
if len(s)<=1:
return s
else:
return</