目录
这道题有一个非常简便的解法,直接用PHP的函数 array_reverse() 解决。也可以用双指针解决。
方法一: array_reverse()(PHP)
class Solution {
/**
* @param String[] $s
* @return NULL
*/
function reverseString(&$s) {
$s = array_reverse($s);
}
}
解释: PHP自带的函数 array_revese() 就是用来翻转数组中的元素的。
测试结果:
执行用时:48 ms, 在所有 PHP 提交中击败了70.78%的用户
内存消耗:35.3 MB, 在所有 PHP 提交中击败了83.56%的用户
通过测试用例:477 / 477
方法二: 双指针(PHP)
class Solution {
/**
* @param String[] $s
* @return NULL
*/
function reverseString(&$s) {
$low = 0;
$high = count($s) - 1;
while ($low < $high) {
$temp = $s[$high];
$s[$high] = $s[$low];
$s[$low] = $temp;
$low++;
$high--;
}
}
}
解释: 题目要求题解的空间复杂度是 O(1) 也就是说只能是常量,所以不能创建新的数组。
测试结果:
执行用时:40 ms, 在所有 PHP 提交中击败了94.06%的用户
内存消耗:35.6 MB, 在所有 PHP 提交中击败了7.31%的用户
通过测试用例:477 / 477
从结果来看,双指针貌似要比PHP内建函数来的要快一些,但是内存消耗更大。