算法题:
用 JavaScript 写一个函数,输入 int 型,返回整数逆序后的字符串。如:输入整型 1234,返回字符串“4321”。要求必须使用递归函数调用,不能用全局变量,输入函数必须只有一个参数传入,必须返回字符串。
数组解法:(最好不要转换数据结构)
使用了...
语法,性能差
function intToReverseStr(v) {
if(!Array.isArray(v)) {
v = v.toString().split('')
}
if(v.length == 1) {
return v.pop()
}
if (v.length == 2) {
v = [v.pop(), ...v]
}
if(v.length > 2) {
v = [
...v.pop(),
...intToReverseStr(v)
]
}
return v.join('')
}
console.log(intToReverseStr(2)) // 2
console.log(intToReverseStr(12)) // 21
console.log(intToReverseStr(1234)) // 4321
字符串解法:
使用了charAt()和substring(),遍历两次。
function res(num) {
return String(num).length ? `${res(String(num).substring(1))}${String(num).charAt(0)}` : String(num);
}
let str = res(1234);
第三种解法:
性能最优
function test(str) {
num1 = str / 10
num2 = str % 10
if(num1 < 1) {
return str + ''
}
if (num2 > 0) {
num1 = num1 >>> 0
return num2 + test(num1)
}
}