转载自 力扣 剑指Offer 第五题
思路整理:
大致方法: 双指针
此想法来自于JS题解点赞量最高的大佬 膜拜大佬~
首先我们要了解 英文的空格符 占了一个字符单位
中文的空格符 占了两个字符单位
此题 为英文空格符
题中 将空格替换成 '%20'占了三个字符单位
本题运用双指针
需要比较原字符串长度 和 新占位字符串长度的关系
空格 占 1单位 %20 占3单位 我们记录下原字符串 中空格的数量 得出关系
newLength=oldLength+count*2
我们得出了占位和原字符串长度 下面进行遍历
s指针指向原字符串最后一项 跟 j指针指向占位字符串最后一项 比较
s指针 指向不为空格的时候 j 指针 指向与s指针指向互换
s指针为空格时 开始替换 %20 j指向位置 换成0 位置j-1 换成2 位置j-2 换成%
最后将数组转换为字符串
var replaceSpace = function(s) {