码迷,mamicode.com
首页 > 其他好文 > 详细

替换空格

时间:2019-04-17 00:05:25      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:replace   turn   实现   pac   字符串   func   ace   需要   优化   

题目描述
请实现一个函数,将一个字符串中的每个空格替换成“%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;

}

替换空格

标签:replace   turn   实现   pac   字符串   func   ace   需要   优化   

原文地址:https://www.cnblogs.com/2018-05-9-ygk/p/10721006.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!