替换空格:
题目:请实现一个函数,把字符串 s 中的每个空格替换成"%20"
//输入:s = "We are happy."
//输出:"We%20are%20happy."
限制:0 <= s 的长度 <= 10000
1.正则表达式:
s.replace(/\s/g,'%20')
- 时间复杂度:O(1)
- 空间复杂度:O(1)
2.字符数组:
题目要求是将空格替换为’%20’,因此可以创建一个长度为该字符串3倍的数组和为0的索引(index),再通过遍历找出空格,找到后将数组对应的index赋值为’%‘,index+1赋值为’2’,index+2赋值为’0’,遍历结束后再转为字符串即可。
function replaceSpace(s){
let len = s.length, index = 0, newArr = new Array(len *3)
for(let v of s){
if(v === ' '){
newArr[index] = '%'
newArr[index+1] ='2'
newArr[index+2] ='0'
index += 3
}else{
newArr[index] = v
index++
}
}
return newArr.join('')
}
- 时间复杂度:O(n)
- 空间复杂度:O(n)
3.replaceAll
s.replaceAll(' ','%20')
4.split
s.split(' ').join('%20')