替换空格

Posted 2018-05-9-ygk

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了替换空格相关的知识,希望对你有一定的参考价值。

题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

暴力求解:

解题思路,从后向前遍历字符串,遇到空格,需要将空格后面的字符向后移动两位,预留出%20的空间
function replaceSpace($str)
{
// write code here
$len = $oldlen = strlen($str);
for($i = $oldlen - 1; $i >= 0; $i--){
if ($str{$i} == ‘ ‘) {//如果等于空格
$len = $len + 2;
for ($j = $len - 1; $j > $i + 2; $j--) {
$str{$j} = $str{$j - 2};
}
$str{$j--} = ‘0‘;
$str{$j--} = ‘2‘;
$str{$j--} = ‘%‘;
}
}
return $str;
}

暴力优化
解题思路:
①、先求出空格的数量
②、从后向前字符串,完成替换
function replaceSpace($str)
{
// write code here
$len = $oldlen = strlen($str);
$backcount = 0;
for($i = $oldlen - 1; $i >= 0; $i--){
if ($str{$i} == ‘ ‘) {
$backcount ++;
}
}

if ($backcount == 0) {
    return $str;
} else {
    
    for($i = $len - 1; $i >= 0; $i--) {
        if ($str{$i} != ' ') {
            $str{$i+2*$backcount} = $str{$i};
        } else {
            $backcount--;
            $str{$i+2*$backcount} = '%';
            $str{$i+2*$backcount+1} = '2';
            $str{$i+2*$backcount+2} = '0';
        }
    }
}
return $str;

}

以上是关于替换空格的主要内容,如果未能解决你的问题,请参考以下文章

如何从主要活动中替换片段

用片段替换时操作栏向下移动

如何在android studio中用另一个片段替换一个片段

用片段替换某些东西

试图替换片段,但它一直显示相同的片段

正则表达式替换markdown文件代码块标记中的所有空格