本篇博客会讲解力扣“344. 反转字符串”的解题思路,这是题目链接。
这是一道经典题目了。解题思路是:双下标,left指向最左边的字符,right指向最右边的字符,交换2个字符,left向右挪动一格,right向左挪动一格,重复前面的步骤,直到left和right相遇。
本题由于已经给了size,所以right可以直接初始化为size-1。注意:如果size未知,则要先遍历字符串,找到\0,或者使用strlen求字符串长度。
void reverseString(char* s, int sSize){
int left = 0;
int right = sSize - 1;
// 双下标,从两边到中间,交换对应字符
while (left < right)
{
char tmp = s[left];
s[left] = s[right];
s[right] = tmp;
++left;
--right;
}
}
总结
反转字符串思路:双下标从两边到中间,交换对应字符。
感谢大家的阅读!