题解 | #24点运算#

24点运算

http://www.nowcoder.com/practice/7e124483271e4c979a82eb2956544f9d

const readline = require('readline')
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
})

rl.on('line',(line)=>{
    if(isJoker(line)){
//         console.log(line)
        return console.log('ERROR')
    }
    while(/[ajqk]/i.test(line)){
        line = transfer(line)
    }
    let arr = line.split(" ")
    let yArr = ['*', '+', '-', '/']
    let str = ''
    let a = 0
    for(i=0;i<4;i++){
        for(j=0;j<4;j++){
            for(q=0;q<4;q++){

                // for(l=0; l<4; l++){
                //     console.log('l:', l)
                //     for(m=0; m<4 && m!==l; m++){
                //     console.log('m:', m)
                //         for(n=0; n<4 && n!==m && n!==l; n++){
                //     console.log('n:', n)
                //             for(k=0; k<4 && k!==n && k!==m && k!==l; k++){
                //     console.log('k:', k)
                for(l=0; l<4; l++){
                    // console.log('l:', l)
                    for(m=0; m<4; m++){
                    // console.log('m:', m)
                        for(n=0; n<4; n++){
                    // console.log('n:', n)
                            for(k=0; k<4; k++){
                    // console.log('k:', k)
                                if(m == l || m == n || m === k || l === n || l === k || n === k){
                                    continue
                                }
                                str = '(('+ arr[l] + yArr[i]+ arr[m] + ')' + yArr[j] + arr[n] + ')' + yArr[q]+arr[k]
                                a = eval(str)
                                // if(l==2&&m==3&&n==0&&k==1&&i==2&&j==0&&q==3){
                                //     console.log(a)
                                //     console.log(str)
                                // }
                                if (24 === a){
                                    // console.log(str)
                                    if(arr[l] == 1){
                                        arr[l] = 'A'
                                    }
                                    if(arr[m] == 1){
                                        arr[m] = 'A'
                                    }
                                    if(arr[n] == 1){
                                        arr[n] = 'A'
                                    }
                                    if(arr[k] == 1){
                                        arr[k] = 'A'
                                    }
                                    str = arr[l]+yArr[i]+arr[m]+yArr[j]+arr[n]+yArr[q]+arr[k]
                                    for(o=0;o<4;o++){
                                        str = transferToW(str)
                                    }
                                    console.log(str)
                                    return
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    console.log('NONE')
    return

})

function isJoker(str){
    return /joker/i.test(str)
}

function transfer(str){
    return str.replace(/a/i, '1').replace(/j/i, '11').replace(/q/i, '12').replace(/k/i, '13')
}

function transferToW(str){
    return str.replace(/11/, 'J').replace(/12/, 'Q').replace(/13/, 'K')
}

单个测试ok 上传后不行。

全部评论

相关推荐

新记话事人:你就和她说去抖音了
点赞 评论 收藏
分享
给🐭🐭个面试机会吧:嘿,mvbatis
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务