首页 > js解决粉刷墙壁的问题
头像
驊驊龔頾
编辑于 2021-04-20 18:58
+ 关注

js解决粉刷墙壁的问题



求解,这个问题通过js如何解答,下面是我写的代码,但是通过率只有21.67%,实在是不知道问题出在哪里,也不知道是哪些案例没有通过,希望大神解答,或者是提供下没有通过的案例,拜谢。。。
(function(line=readline()){
    var lines = line.split(" ");
    let lineNum = Number(lines[0]),
        str = String(lines[1]);
    // 如果n > 10W || n < 1 || n != str.length,则不执行后面的代码
    if(lineNum > 100000 || lineNum < 1 || lineNum != str.length) return;
    if(lineNum % 2 == 0){
        //如果n为2的倍数,则判断(左侧刷为蓝色+右侧刷为红色)与 全部刷为红色或蓝色 的最少次数
        console.log(Math.min(getObj(str), getObj(str.substring(0,lineNum/2),"red") + getObj(str.substring(lineNum/2),"blue")));
    }else{
        //如果n不是2的倍数,则判断全部刷为红色或者蓝色的最少粉刷次数
        console.log(getObj(str));
    }
}())

// str表示要粉刷的格子,color表示要粉刷成什么颜色
function getObj(str, color){
    // 定义一个变量,存储粉刷红色或者蓝色的次数
    let obj = {"blue":0,"red":0};
    //获取当前字符串中红色格子和蓝色格子的数量
    str.split("").forEach(el=>{
        if(el === "1"){
            obj["blue"]++;
        }else{
            obj["red"]++;
        }
    })
    if(!color){
        // 如果不区分粉刷成哪种颜色,则取当前那种颜色的格子数量少
        return Math.min(obj["blue"], obj["red"]);
    }else{
        // 返回需要粉刷颜色的格子数量
        return Number(obj[color]);
    }
}

全部评论

(3) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

热门推荐