[PHP]算法-替换空格的PHP实现
替换空格:
请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 思路:
1.先循环一遍,找出该字符串中" "空格的个数count
2.因为要把" "空格替换成 "%20",所以,要倒着数,最后一个空格后面的元素要移动到2*count位置
3.继续往前遍历,倒数第二个空格后面直到最后空格之间的元素,往后移动(count-1)*2位置 replaceSpace(str)
count=0
for i=0;i<count(str);i++
if str[i]==' ' count++
for i=count(str)-1;i>=0;i--
if str[i]!=' '
str[i+2*count]=str[i]
else
count--
str[i+2*count+1]='%'
str[i+2*count+2]='2'
str[i+2*count+3]='0'
<?php
function replaceSpace($str)
{
$length=strlen($str);//注意字符串长度的函数
$count=0;
for($i=0;$i<$length;$i++){
if($str[$i]==' '){
$count++;
}
}
//倒叙遍历,字符先复制到后面,空格所在位置替换成目标
for($i=$length-1;$i>=0;$i--){
if($str[$i]!=' '){
$str[$i+$count*2]=$str[$i];
}else{
$count--;
$str[$i+$count*2]='%';
$str[$i+$count*2+1]='2';
$str[$i+$count*2+2]='0';
}
}
return $str;
}
$str="We Are Happy";
$str1=replaceSpace($str);
var_dump($str1);
[PHP]算法-替换空格的PHP实现的更多相关文章
- 【算法训练营day8】LeetCode344. 反转字符串 LeetCode541. 反转字符串II 剑指Offer05. 替换空格 LeetCode151. 翻转字符串里的单词 剑指Offer58-II. 左旋转字符串
[算法训练营day8]LeetCode344. 反转字符串 LeetCode541. 反转字符串II 剑指Offer05. 替换空格 LeetCode151. 翻转字符串里的单词 剑指Offer58- ...
- 剑指Offer面试题:3.替换空格
一.题目:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成"%20".例如输入“We are happy.”,则输出“We%20are%20happy.”. 在网络编程中 ...
- 剑指offer-面试题4.替换空格
题目:请实现一个函数,把字符串中的每个空格都替换成"%20".例如输入"We are happy." 则输出"We%20are%20happy.&qu ...
- 《剑指offer》第五题(替换空格)
// 替换空格 // 题目:请实现一个函数,把字符串中的每个空格替换成"%20".例如输入“We are happy.”, // 则输出“We%20are%20happy.”. # ...
- 替换空格(C++和Python 实现)
(说明:本博客中的题目.题目详细说明及参考代码均摘自 “何海涛<剑指Offer:名企面试官精讲典型编程题>2012年”) 题目 请实现一个函数,把字符串中的每个空格替换为 "%2 ...
- 剑指offer——面试题5:替换空格
利用STL: #include"iostream" #include"stdio.h" #include"algorithm" using ...
- 剑指Offer - 九度1510 - 替换空格
剑指Offer - 九度1510 - 替换空格2013-11-29 20:53 题目描述: 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之 ...
- 《剑指offer》面试题4:替换空格
面试题4:替换空格 题目:请实现一个函数,把字符串中的每个空格替换成"%20",例如输入"We are happy.",则输出"we%20are%20 ...
- 剑指Offer 替换空格
题目描述 请实现一个函数,将一个字符串中的空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 思路: 替换空格,先遍历一遍记 ...
随机推荐
- POI SXSSFWorkbook 读取模板 存在公式解决
package com.baoqilai.base.service.export; import java.io.File; import java.io.FileInputStream; impor ...
- break语句和continue语句
1. break 语句 break语句只能用在switch语句中,其作用是跳出switch语句或跳出本层循环. 2. continue 语句 continue语句只能用在循环体中,用于结束本次循环,即 ...
- python多版本管理包pyenv
前言: CentOS7 默认版本 python2.7.5 ,但是目前项目开发都是在python3的环境下,而单独编译安装python3时会出现各种异常!!! 系统默认python2.7又不能删除,否 ...
- ReactNative学习笔记(六)集成视频播放
概述 视频播放可以自己写原生代码实现,然后注入JS.如果对视频播放没有特殊要求的话,可以直接使用现成插件. 到官方推荐的插件网站搜索找到下载量第一的插件:react-native-video. 安装 ...
- 精选!15个必备的VSCode插件
Visual Studio Code 是由微软开发的一款免费.跨平台的文本编辑器.由于其卓越的性能和丰富的功能,它很快就受到了大家的喜爱. 就像大多数 IDE 一样,VSCode 也有一个扩展和主题市 ...
- Python自动化编程-树莓派GPIO编程(二)
树莓派我们编程一般都直接用高效的python,针对于GPIO编程,python也是有这一方面的库的,这里最有名也是最常用的就是RPI.GPIO了.这个库是专门为树莓派GPIO编程所设计的,利用它你可以 ...
- Java设计模式----解释器模式
计算器中,我们输入“20 + 10 - 5”,计算器会得出结果25并返回给我们.可你有没有想过计算器是怎样完成四则运算的?或者说,计算器是怎样识别你输入的这串字符串信息,并加以解析,然后执行之,得出结 ...
- 基于DobboX的SOA服务集群搭建
本人第一次发博客,有什么不对的地方希望各位批评指正,我就不把文章copy过来了,直接上有道笔记的链接,希望各位喜欢. 第一部分: 准备工作 第二部分: dubbox的安装和使用 第三部分: RESTf ...
- MySQL [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause
MySQL[Err]1055 上次MySQL5.7.19主从建立完成之后,所有的测试都是在MySQL命令行下进行的,最近用Navicat Premium进行MySQL的连接,然后在插入数据的时候MyS ...
- Shell-3--变量
用户自定义变量 环境变量 位置参数变量 预定义变量