请实现一个函数,把字符串 s 中的每个空格替换成"%20"。
示例 1:
输入:s = "We are happy."
输出:"We%20are%20happy."
0 <= s 的长度 <= 10000
解这个题主要想到了两种方法:
1.直接用php内置函数str_replace
2.这个是看题解写的,先计算出空格数量,然后得到新字符串的长度,然后从后面开始加进去,这里要注意的就是为了节省空间,不开辟一个新变量存储新字符,在原来那个字符中必须要从后面开始加,因为只有后面才是空着的,前面都是已经存好值了,接下来遍历原来的字符数组,遇到空格把’%20’添加进去就好了
贴出第二种方法代码:
执行用时:0 ms, 在所有 PHP 提交中击败了100.00%的用户
内存消耗:14.8 MB, 在所有 PHP 提交中击败了100.00%的用户
class Solution {
/**
* @param String $s
* @return String
*/
function replaceSpace($s) {
$count = 0;
$len = strlen($s);
for ($i = 0; $i < $len; $i++) {
if ($s[$i] == ' ') {
$count++;
}
}
$new_len = $len + $count*2;
for ($j = $len - 1,$new_len--;$j >= 0; $j--) {
if ($s[$j] == ' ') {
$s[$new_len] = '0';
$new_len--;
$s[$new_len] = '2';
$new_len--;
$s[$new_len] = '%';
$new_len--;
} else {
$s[$new_len] = $s[$j];
$new_len--;
}
}
return $s;
}
}