小米前端编程题求指教

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

相关推荐

07-15 11:43
门头沟学院 Java
点赞 评论 收藏
分享
避坑恶心到我了大家好,今天我想跟大家聊聊我在成都千子成智能科技有限公司(以下简称千子成)的求职经历,希望能给大家一些参考。千子成的母公司是“同创主悦”,主要经营各种产品,比如菜刀、POS机、电话卡等等。听起来是不是有点像地推销售公司?没错,就是那种类型的公司。我当时刚毕业,急需一份临时工作,所以在BOSS上看到了千子成的招聘信息。他们承诺无责底薪5000元,还包住宿,这吸引了我。面试的时候,HR也说了同样的话,感觉挺靠谱的。于是,我满怀期待地等待结果。结果出来后,我通过了面试,第二天就收到了试岗通知。试岗的内容就是地推销售,公司划定一个区域,然后你就得见人就问,问店铺、问路人,一直问到他们有意向为止。如果他们有兴趣,你就得摇同事帮忙推动,促进成交。说说一天的工作安排吧。工作时间是从早上8:30到晚上18:30。早上7点有人叫你起床,收拾后去公司,然后唱歌跳舞(销售公司都这样),7:55早课(类似宣誓),8:05同事间联系销售话术,8:15分享销售技巧,8:30经理训话。9:20左右从公司下市场,公交、地铁、自行车自费。到了市场大概10点左右,开始地推工作。中午吃饭时间大约是12:00,公司附近的路边盖饭面馆店自费AA,吃饭时间大约40分钟左右。吃完饭后继续地推工作,没有所谓的固定中午午休时间。下午6点下班后返回公司,不能直接下班,需要与同事交流话术,经理讲话洗脑。正常情况下9点下班。整个上班的一天中,早上到公司就是站着的,到晚上下班前都是站着。每天步数2万步以上。公司员工没有自己的工位,百来号人挤在一个20平方米的空间里听经理洗脑。白天就在市场上奔波,公司的投入成本几乎只有租金和工资,没有中央空调。早上2小时,晚上加班2小时,纯蒸桑拿。没有任何福利,节假日也没有3倍工资之类的。偶尔会有冲的酸梅汤和西瓜什么的。公司的晋升路径也很有意思:新人—组长—领队—主管—副经理—经理。要求是业绩和团队人数,类似传销模式,把人留下来。新人不能加微信、不能吐槽公司、不能有负面情绪、不能谈恋爱、不能说累。在公司没有任何坐的地方,不能依墙而坐。早上吃早饭在公司外面的安全通道,未到上班时间还会让你吃快些不能磨蹭。总之就是想榨干你。复试的时候,带你的师傅会给你营造一个钱多事少离家近的工作氛围,吹嘘工资有多高、还能吹自己毕业于好大学。然后让你早点来公司、无偿加班、抓住你可能不会走的心思进一步压榨你。总之,大家在找工作的时候一定要擦亮眼睛,避免踩坑!———来自网友
qq乃乃好喝到咩噗茶:不要做没有专业门槛的工作
点赞 评论 收藏
分享
仁者伍敌:难怪小公司那么挑剔,让你们这些大佬把位置拿了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-16 18:05
何尝不是一种学历歧视呢
码农索隆:楼主明确拒绝,并说明拒绝原因了,这hr倒是挺忠心护主的
点赞 评论 收藏
分享
评论
点赞
14
分享

创作者周榜

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