【剑指offer】03.替换空格

71 阅读1分钟

描述 请实现一个函数,将一个字符串s中的每个空格替换成“%20”。 例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

题解

  • 思路1:我本来是想直接用s.replaceAll(' ','%20'),这个函数直接替换所有的空格,结果牛客上的node.js版本过低,一直提示没有replaceAll这个方法
  • 思路2:然后我就想着遍历一下字符串,遇到空格就替换,结果因为对字符串的特性还不是很熟悉,这么简单的思想竟然调试了好久
function replaceSpace( s ) {
    s = s.split('');
    s = s.map(item => item===' '?'%20':item).join('');
    return s;
}

下面两个思路是在牛客上看到的其他人的想法,确实瞬间感觉自己脑子不够用,把这么简单的题复杂化了

  • 思路三
function replaceSpace( s ) {
    // write code here
    s=s.split(' ').join('%20');
    return s
}
  • 思路四
function replaceSpace( s ) {
//利用window对象上的encodeURIComponent方法,很巧解码的时候空格会被编码为%20,直接返回即可
    return encodeURIComponent(s)
}