小米前端编程题求指教

1. 三角形(78)
long fun(long x) {
    for (long i = 0; i < x; i++) {
        long el = 1;
        for (long j = 0; j <= i; j++) {
            el = el * (i - j) / (j + 1);
            if (el == x) return i + 1;
        }
    }
}
2. 食堂里的长桌(AC)
bool fun(char* table, int n) {
    int len = sizeof(table);
    int pos = 0;
    for (int i = 0; i < len - 3; i++) {
        if (table[i + 1] == '0' && table[i + 2] == '0' && table[i + 3] == '0') pos++;
    }
    if (pos >= n) return true;
    else return false;
}
3. 能否变成回文串(88)
function fun(str) {
    var len = str.length;
    var hash = {};
    var isPalindrom = false;
    for (var i = 0; i < len; i++) {
        if (!hash[str[i]]) hash[str[i]] = true;
    }
    for (var i in hash) {
        if ((str + i) === (str + i).split('').reverse().join('') ||
            (i + str) === (i + str).split('').reverse().join('')
        ) {
            isPalindrom = true;
        }
    }
    return isPalindrom;
}
杨辉三角不知道漏了哪些 cases,回文串感觉是超时了,求分享一下 AC 的解法 🙏#小米##前端工程师#
全部评论
第三题,最简单暴力解,连缓存都没用,可以过 const readline = require('readline') const log = console.log.bind(console) const rl = readline.createInterface({ input: process.stdin, output: process.stdout }) rl.on('line', function(line){ const str = line.trim() const result = handle(str) // var output = result ? 1 : 0 log(result) }); const valid = function(checkString) { var s = checkString var len = s.length var odd = len % 2 === 1 var subLen = Math.floor(len / 2) var t1 = s.slice(0, subLen) var t2 = odd ? s.slice(subLen + 1) : s.slice(subLen) t2 = t2.split('').reverse().join('') // log('t', t1, t2) return t1 === t2 } const handle = function(str) { var s = str var arr = s.split('') var set = new Set(arr) set = [...set] var result = 0 for(var k = 0; k < set.length; k++) { var c = set[k] var t = c + s if (valid(t)) { return 1 } } for(var i = 0; i < s.length; i++) { for(var j = 0; j < set.length; j++) { var v = set[j] var temp = s.slice(0, i + 1) + v + s.slice(i + 1) if (valid(temp)) { return 1 } } } return 0 } btw,前端为何不用node(
点赞 回复 分享
发布于 2017-09-18 21:26
第三题,如果字符串减一个字母是回文串,那加一个字母也会是回文串,然后把字符串挨个减掉挨个试就可以了
点赞 回复 分享
发布于 2017-09-18 21:23
第一题ac 很low的版本 function fun(n) {     if(n==1){return 1}     var l = 10000;     var res = [];     var k;     for(var i=1;i<=l;i++) {         k=1;         for(var j=1;j<i;j++) {             res.push(k);             k=k*(i-j)/j;         }         if(res.indexOf(n)!=-1){console.log(i);return}     } };
点赞 回复 分享
发布于 2017-09-18 21:21
你第2题A了?我感觉不对啊😂
点赞 回复 分享
发布于 2017-09-18 21:13

相关推荐

11-17 23:00
南昌大学 Java
点赞 评论 收藏
分享
bg27强双非本,目前在学习golang后端gin框架部分,在b站找了一个轮子项目敲了一下,技术栈是gin&nbsp;+&nbsp;gorm&nbsp;+&nbsp;mysql&nbsp;+&nbsp;redis。我目前的想法是这一个月学习408和go八股以及刷算法然后在12月找个寒假实习然后大三下开始准备考研。我是考研意愿比较强烈,想问一下我是应该all&nbsp;in其中一个方向吗,我感觉我实习对我考研来说也是没什么帮助的好像。
牛客28967172...:毕业工作,考研,考公是完全不同的方向。 99%的人拼尽全力也只能把一个做好(能做好都已经是佼佼者了,比如进进大厂,考985或者考公) 如果你确定要考研可以不用学任何就业技术框架,也不用实习经验,刷题背知识点就行,但注意必须考92院校起步,因为这个年代双非硕毕业后完全不如双非本(互联网行业),可以说双非硕在互联网就业完全是负收益
投递哔哩哔哩等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
14
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务