编程语言
首页 > 编程语言> > JS数据结构与算法---- 替换字符串的空格

JS数据结构与算法---- 替换字符串的空格

作者:互联网

cover from  Leetcode
转载自 力扣 剑指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