美团前端笔试编程题

很蛋疼的系统,差点被输出搞死。。。

第一题:

var n = parseInt(read_line())

var obj = {}
for (var i = 0; i < n; i++) {
    var key = read_line()
    obj[key] = 0
}

var m = parseInt(read_line())
for (var i = 0; i < m; i++) {
    var key = read_line()
    obj[key]++
}

var res = []
for (var i in obj) {
    if (obj[i] == 0) {
        res.push(i)
    } 
}
res.sort()
for (var i = 0; i < res.length; i++) {
    if (i == res.length - 1) {
        printsth(res[i])
    } else {
        print(res[i])
    }
}

第二题:

var n1 = parseInt(read_line())
var n2 = parseInt(read_line())

if (n1 < n2) {
    if (n2 - n1 < (360 - n2 + n1)) {
        printsth(n2 - n1)
    } else if (n2 - n1 > (360 - n2 + n1)) {
        printsth(-(360 - n2 + n1))
    } else {
        printsth(Math.abs(n2 - n1))
    }
} else if (n1 > n2) {
    if (n1 - n2 > (360 - n1 + n2)) {
        printsth(360 - n1 + n2)
    } else if (n1 - n2 < (360 - n1 + n2)) {
        printsth(-(n1 - n2))
    } else {
        printsth(Math.abs(n1 - n2))
    }
} else {
    printsth(0)
}
#美团#
全部评论
怎么这么坑,我说我在自己的编辑器上运行的对的,弄上去怎么也不对。
点赞 回复 分享
发布于 2017-08-31 21:33
哇。。你的第二题不是最长交错序列吗? 看代码不像啊
点赞 回复 分享
发布于 2017-08-31 21:34
function test(a,b) { var tmp1; var tmp2; if(a >= b) { tmp1 = 360-a+b; tmp2 = b-a; } else { tmp1 = b-a; tmp2 = 0-a-(360-b); } console.log(Math.abs(tmp1) > Math.abs(tmp2) ? tmp2 : tmp1) } 请问下楼主,能帮我看下第二道题哪里出问题了吗,只有80通过,tmp1顺时针,tmp2逆时针
点赞 回复 分享
发布于 2017-08-31 21:42
第一道题不是要按照首字母排序吗?楼主做了吗?
点赞 回复 分享
发布于 2017-08-31 21:46
最长交错序列做出来的同学能贴下代码吗,感觉自己思路肯定没问题,但是写的代码输入输出有问题,一直输出超额。。。
点赞 回复 分享
发布于 2017-08-31 21:58
我想问个问题,这种V8的环境代码怎么测啊,本地?
点赞 回复 分享
发布于 2017-09-01 21:26

相关推荐

点赞 10 评论
分享
牛客网
牛客企业服务