校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 算法 > 字符串算法
题目

字符串反转, 如“abcdefg”变为“gfedcba”,要求空间复杂度为O(1), 时间复杂度尽量低

解答

思路:

1.交换的两个指针不方便作为递归参数;

2.换个替换方案,用char数组来实现,用left ,right 两个指标指示位置;

3.递归需要有终结态,当left > = right, 反转完成。

核心代码
void reverse( const char[] s, int left, int right )
{
if(left >= right)
return;

char t = s[left] ;
s[left] = s[right] ;
s[right] = t ;

reverse(s, left + 1, right - 1) ;
}


C 2条回复 评论
杜行知

老师讲得好好啊,谢谢老师

发表于 2021-09-12 13:15:00
0 0