JS数据结构与算法---- 替换字符串的空格
作者:互联网
转载自 力扣 剑指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) {
s=s.split('')
var count=0
let oldLength=s.length
for(let i=0;i<oldLength;i++){
if(s[i]===' ')
{
count++
}
}
s.length+=count*2
for(let j=s.length-1,c=oldLength-1;c>=0;j--,c--){
if(s[c]!==' ')
{
s[j]=s[c]
}
else{
s[j]='0'
s[j-1]='2'
s[j-2]='%'
j-=2
}
}
return s.join('')
};
标签:count,空格,指向,JS,----,空格符,字符串,数据结构,指针 来源: https://blog.csdn.net/weixin_44201963/article/details/115416659