// 反转字符串
function reverse(nums) {
const len = nums.length
let i = 0, j = len-1
while(i < j) {
let tem = nums[i]
nums[i++] = nums[j]
nums[j--] = tem
}
return nums
}
// console.log(revert(['x','c','y', 'h']))
// 反转字符串2
function reverse(s, start, end) {
for (let i = start, j = end; i < j; i++, j--) {
[s[i], s[j]] = [s[j], s[i]]
}
return s
}
// 反转 部分字符串
function reverseStr(s, k) {
const len = s.length
for(let i = 0; i < len; i += (2*k)) {
if(i+ k <= len) {
reverse(s, i, i+k -1)
} else {
reverse(s, i, len -1)
}
}
return s
}
// console.log(reverseStr(['z', 'x', 'c', 'v', 'e', 'r'], 2))
// 替换空格
function replace(s) {
const arr = s.split(''), len = s.length
for(let i = 0; i< len; i++) {
if(arr[i] === ' ') { arr[i] = '%20'}
}
return arr.join('')
}
// console.log(Array.from('zz zz '))
// 反转单词
function reverseWord(s) {
const strArr = Array.from(s.trim()), res = []
let i = 0, j = 0, count = 0, len = strArr.length
while(i <= j) {
if(strArr[j] !== ' ') {
j++
count++
}
if(strArr[j] === ' ') {
res[len - count] = strArr[i++]
count--
len--
}
if(count === 0) j++
}
return res.join('')
}
function reverseWord(s) {
const strArr = Array.from(s.trim()), len = strArr.length, stack = [], stk = []
for(let i=0; i< len; i++) {
stack.push(strArr[i])
}
for(let i=0; i< len; i++) {
const top = stack.pop()
if(top !== ' ') stk.push(top)
}
}
// console.log(reverseWord('the sky is blue'))
console