1、解题思路
原地反转数组,设定两个游标,初始指向数组首尾元素,再依次向中移动,同时借助中间变量交换指向元素的值,直至遍历完数组。
2、有效题解
void reverseString(char* s, int sSize)
{
if (sSize <= 1)
{
return;
}
char tmp;
int left = 0;
int right = sSize - 1;
while (left < right)
{
tmp = s[left];
s[left] = s[right];
s[right] = tmp;
left++;
right--;
}
}
3、复杂度分析
遍历数组,时间复杂度O(n),空间复杂度O(1)
4、小结
需要注意边界条件的判断。
解答前养成先写测试用例的习惯。