题目描述
解题
class Solution(object):
def reverseString(self, s):
"""
:type s: List[str]
:rtype: None Do not return anything, modify s in-place instead.
"""
def helper(start, end, ls):
if start >= end:
return
elif start < end :
ls[start],ls[end] = ls[end],ls[start]#交换左右位置
return helper(start+1,end-1,ls)
helper(0,len(s)-1,s)
感悟
对于递归时取中间值,可以使用头+1,尾-1
python注意点
- 函数内定义函数方法(注意是否写self)
- 交换值方式 ls[start],ls[end] = ls[end],ls[start]
对比题
以相反的顺序打印字符串。
(C++)注意putchar与递归函数调用的位置
void printReverse(const char *str) {
if (!*str)
return;
printReverse(str + 1);
putchar(*str);
}