首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >诡计或治疗

诡计或治疗
EN

Code Golf用户
提问于 2019-10-31 13:49:05
回答 3查看 296关注 0票数 4

Introduction

小吉米要么捣蛋要么请客。他住在一个奇怪的社区:有些房子送糖果,有的送牙刷。吉米不想要太多的牙刷。他想要糖果!你得帮他弄点。

挑战

吉米街区的每条街都有一个号码。街上的每户人家都会送糖果或牙刷。然而,吉米的父母知道,如果他吃太多糖果,他会变得非常兴奋。为了防止这种情况,他们只让他沿着附近的一条街走。给出一张街道清单,你必须输出吉米能得到最多糖果和最少牙刷的街道。这意味着,正如评论中所说的,即使一条街送出500块糖果和1支牙刷,也比送出一颗糖果和一支牙刷更糟糕。

  • 街道名单将是2D。它永远不会是空的。每条街道都将是一张真实或虚假价值观的清单。可能是空的。Falsy的价值观代表了一所提供牙刷的房子,而真正的价值则代表了散发糖果的房子。
  • 你的程序必须用最真实的值和最少的错误值输出街道的索引,或者是给出最多糖果和最少牙刷的街道。如果所有的街道都有相同数量的糖果和牙刷,你可以输出-1。索引是基于0的还是基于1的并不重要.它可以作为字符串存储。整数可以位于任意基中。

示例I/O

注意:在这些列表中,True表示真实值,False表示虚假值。如果您的语言使用1-索引,0可以被1取代.

  • Streets: [[True,True,True],[False,False],[False]] Output: 0
  • Streets: [[False,True,True],[False,False],[True],[False]] Output: 2
  • Streets: [[],[False,False,True],[False]] Output: 0
  • Streets: [[True,True,False],[False,True,True],[True,False,True]] Output: -1
  • Streets: [[True,True,True,True,True,False],[True]] Output: 1
  • Streets: [[False, True],[False,True,True]] Output:1

规则

这是密码-高尔夫,所以以字节为单位的最短代码将获胜!

EN

回答 3

Code Golf用户

发布于 2019-10-31 14:01:32

Python 2,58字节

代码语言:javascript
复制
lambda l:l.index(max(l,key=lambda s:(-s.count(0),sum(s))))

在网上试试!

票数 3
EN

Code Golf用户

发布于 2019-10-31 15:08:21

R,52字节

代码语言:javascript
复制
function(l)order(lengths(l)-(m=sapply(l,sum)),-m)[1]

在网上试试!

减少牙刷的数量,然后最大限度地增加糖果的数量,因为这显然是OP要求的。

如果我们想首先最大限度地增加糖果的数量,那么减少牙刷的数量(似乎更合理的…)它变成

R,51字节

代码语言:javascript
复制
function(l)order(m<--sapply(l,sum),lengths(l)+m)[1]

在网上试试!

在向量列表中计算TRUEs的个数使用sapply(l,sum)是很容易的。计算FALSEs的数量要少得多,所以我用lengths减去TRUEs的个数。

票数 2
EN

Code Golf用户

发布于 2019-11-02 22:34:08

果冻,15字节

代码语言:javascript
复制
ċþØ.N1¦ZM-¹L’$?

在网上试试!

包含果冻布尔(0和1)列表的一元链接。使用指定的条件返回1索引的最大列表,如果有多个相同的条件,则返回-1。最后6个字节用于将多个值转换为-1;如果可以删除,答案将为9字节。

票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/195112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档