AcWing 16. 替换空格
原题链接
简单
作者:
buchiyu
,
2021-05-11 10:26:43
,
所有人可见
,
阅读 207
遍历替换法
var replaceSpaces = function(str) {
let strArr = str.split('')
for (let i = 0; i < strArr.length; i++) {
if (strArr[i] === ' ') {
strArr[i] = '%20'
}
}
return strArr.join('')
}
正则法
var replaceSpaces = function(str) {
return str.replace(/ /g,'%20')
}
双指针法
var replaceSpaces = function(str) {
let oldLength = str.length
let count = 0
for (let i = 0; i < oldLength; i++) if (str[i] == ' ') count ++
let newLength = oldLength + count * 2
str.length = newLength
let left = oldLength - 1
let right = newLength - 1
str = str.split('')
while (left >= 0) {
if (str[left] != ' ') {
str[right] = str[left]
right --
} else {
str[right] = '0'
str[right - 1] = '2'
str[right - 2] = '%'
right -= 3
}
left --
}
return str.join('')
};