LeetCode 算法

LeetCode 字符串反序

2020-05-06  本文已影响0人  越前君
  1. 整数反转
/**
 * 整数反转
 * @param {Number} num 所求整数
 * @returns {String} 返回字符串类型
 */
function intReverse(num) {
    let i = num / 10
    let j = num % 10
    if (i < 1) {
        // 小于 10 直接返回
        return num.toString()
    } else {
        let nextNum = Math.floor(i)
        // 要采用字符串拼接,否则就求和了
        return `${j}${intReverse(nextNum)}`
    }
}

let num = 123456
console.log(intReverse(num))        // 654321
console.log(typeof intReverse(num)) // string
  1. 字符串数组反转

这里不讨论 Array.prototype.reverse.call(someArray)Array.prototype.reverse.apply(someArray)

/**
 * 字符串数组反转
 * @param {character[]} arr
 * @return {void} Do not return anything, modify arr in-place instead.
 */
function reverseString(arr) {
    let len = arr.length
    if (len <= 1) return
    // 数组长度为奇数时,中间元素无需处理
    for (let i = 0, j = len - 1; i < len / 2; i++, j--) {
        let temp = arr[i]
        arr[i] = arr[j]
        arr[j] = temp
    }
}

let num = ['h', 'e', 'l', 'l', 'o']
reverseString(num)
console.log(num)    // ['o', 'l', 'l', 'e', 'h']

// while 循环处理
// function reverseString(arr) {
//     let len = arr.length
//     if (len <= 1) return
//     let i = 0, j = len - 1
//     while (i < j) {
//         let temp = arr[i]
//         arr[i] = arr[j]
//         arr[j] = temp
//         i++
//         j--
//     }
// }

未完待续...

上一篇 下一篇

猜你喜欢

热点阅读