算法——替换空格

替换空格:

题目:请实现一个函数,把字符串 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')
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值