反转字符串
题目链接:反转字符串
var reverseString = function(s) {
let left = 0, right = s.length - 1
while(left < right) {
[s[left], s[right]] = [s[right], s[left]]
left++
right--
}
return s
};
翻转字符串里面的单词
题目链接:翻转字符串里面的单词
var reverseWords = function(s) {
s = s.replace(/(^\s*)|(\s*$)/g, '').replace(/\s{1,}/g, ' ')
const get = (str, left, right) => {
while(left < right) {
[str[left], str[right]] = [str[right], str[left]]
left++
right--
}
}
const arr = Array.from(s)
get(arr, 0, arr.length - 1)
let left = 0
for(let right = 0; right < arr.length + 1; right++) {
if(arr[right] === ' ' || right === arr.length) {
get(arr, left, right - 1)
left = right + 1
}
}
return arr.join('')
};
反转字符串||
题目链接:反转字符串||
var reverseStr = function(s, k) {
const get = (str, left, right) => {
while(left < right) {
[str[left], str[right]] = [str[right], str[left]]
left++
right--
}
}
s = s.split('')
for(let i = 0; i < s.length; i += (2 * k)) {
if(s.length - i >= k) {
get(s, i, i + k - 1)
continue
}
get(s, i, s.length - 1)
}
return s.join('')
};
替换空格
题目链接:替换空格
var replaceSpace = function(s) {
return s.replace(/\s/g, '%20')
};
左旋转字符串
题目链接:左旋转字符串
var reverseLeftWords = function(s, n) {
const arr = Array.from(s)
const restArr = arr.slice(0, n)
arr.splice(0, n)
return arr.concat(restArr).join('')
};