LeetCode 字符串反序
2020-05-06 本文已影响0人
越前君
- 整数反转
/**
* 整数反转
* @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
- 字符串数组反转
这里不讨论
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--
// }
// }
未完待续...