美文网首页
腾讯面试中遇到的算法题

腾讯面试中遇到的算法题

作者: 我向你奔 | 来源:发表于2018-03-28 21:01 被阅读78次

26进制字母

设定如下的对应关系(A=1,B=2,C=3...Z=26,AA=27,AB=28...AAA=xxx...),编写一个转换函数,根据上面的规则把一个字符串转换为数字。

思路:类似于十进制,首先将A—Z对应的值存起来,然后在计算结果时从字符串的最后一位开始计算。比如要转换的是“AB”,就用B对应的数字 × 26的0次方 + A对应的数字 × 26的1次方,依此类推。

function StrToInt(str) {
    let result = 0;
    var book = {
        "A": 1,
        "B": 2,
        "C": 3,
        "D": 4,
        "E": 5,
        "F": 6,
        "G": 7,
        "H": 8,
        "I": 9,
        "J": 10,
        "K": 11,
        "L": 12,
        "M": 13,
        "N": 14,
        "O": 15,
        "P": 16,
        "Q": 17,
        "R": 18,
        "S": 19,
        "T": 20,
        "U": 21,
        "V": 22,
        "W": 23,
        "X": 24,
        "Y": 25,
        "Z": 26
    }
    for (let i = str.length - 1, count = 0; i >= 0; i-- , count++) {
        // Math.pow(x,y) x 必需 底数,必须是数字;y 必需,幂数,必须是数字
        result += book[str[i]] * Math.pow(26, count)   
    }
    return result;
}
var str = "AC";
console.log(StrToInt(str));     // 29

给输出加序号

要求扩展console.log方法,在每个输出前添加一个自增序号。例如:
console.log("foo"); // 输出:1:foo
console.log("bar"); // 输出:2:bar

思路:首先定义一个方法,在输出时加上序号,然后将系统的console.log当作参数传进去,并将返回值(decorator函数的声明)赋给console.log,然后再调用时只需要给console.log传入参数就可以了。

function logIt(f) {
    id = 1
    function decorator(message) {
        f(id + ":" + message)
        id++
    }
    return decorator
}
console.log = logIt(console.log)  // 重定义系统的console.log函数,将系统的函数当成参数传给logIt 

console.log("One")
console.log("Two")
console.log("Three")

将数字格式化金额格式,每三位加上逗号

思路:首先调用每个数组元素的 toLocaleString() 方法,然后使用地区特定的分隔符把生成的字符串连接起来,形成一个字符串。

let num = 34782623;
result = formatNum(num);
console.log(result);
function formatNum(num) {
    num = num.toLocaleString();    // 把数组转换为本地字符串
    return num;
}

实现这样的函数:f(1).value==1;f(1)(2).value==5;f(1)(2)(3).value==9;

思路:给函数 f 添加一个属性value,然后给 f 传入参数val,给val平方赋给全局变量v,最后返回 f,就可以无限调用f,最后再将v的值赋给f的属性value,输出就ok。

var v = 0;
function f (val) {
    v += val * val;
    return f;
}
f(1)(2).value = v;
console.log(f.value);

相关文章

网友评论

      本文标题:腾讯面试中遇到的算法题

      本文链接:https://www.haomeiwen.com/subject/qugucftx.html