问题标签 [rosetta-stone]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
34 回答
2916 浏览

bytearray - 数组搜索代码挑战

这是我的(代码高尔夫)挑战:获取两个字节数组并确定第二个数组是否是第一个数组的子字符串。如果是,则输出第二个数组的内容出现在第一个数组中的索引。如果在第一个数组中没有找到第二个数组,则输出 -1。

示例输入:{ 63, 101, 245, 215, 0 } { 245, 215 }

预期产出:2

示例输入 2:{ 24, 55, 74, 3, 1 } { 24, 56, 74 }

预期输出 2:-1

编辑:有人指出 bool 是多余的,所以你的函数所要做的就是返回一个表示值索引的 int 或 -1 如果没有找到。

0 投票
33 回答
6643 浏览

language-agnostic - 代码高尔夫:浪潮

挑战

按字符计数的最短代码从输入字符串生成波形。

通过提升(第 1 行)较高的字符和降低(第+1 行)较低的字符来生成波浪。相同的字符保持在同一行(不进行提升或降级)。

输入仅由小写字符和数字组成,字母被认为高于数字。

测试用例:

代码计数包括输入/​​输出(即完整程序)。

0 投票
18 回答
7148 浏览

math - Code Golf:数学表达式评估器(尊重 PEMDAS)

我挑战你编写一个数学表达式评估器,它尊重 PEMDAS(操作顺序:括号、求幂、乘法、除法、加法、减法),而不使用正则表达式、预先存在的类似“Eval()”的函数、解析库, ETC。

我在 SO(此处)上看到了一项预先存在的评估员挑战,但该挑战特别需要从左到右的评估。

示例输入和输出:

我用 C# 编写了一个评估器,但想看看它与选择语言的聪明程序员相比有多糟糕。

有关的:

Code Golf:评估数学表达式

说明:

  1. 让我们把它变成一个接受字符串参数并返回字符串结果的函数。

  2. 至于为什么没有正则表达式,那是为了公平竞争。我认为“最紧凑的正则表达式”应该有一个单独的挑战。

  3. 使用 StrToFloat() 是可以接受的。通过“解析库”,我的意思是排除通用语法解析器之类的东西,也是为了公平竞争。

  4. 支持浮动。

  5. 支持括号、求幂和四种算术运算符。

  6. 给予乘法和除法同等的优先级。

  7. 给予加法和减法同等的优先权。

  8. 为简单起见,您可以假设所有输入都是格式正确的。

  9. 对于您的函数是否接受诸如“.1”或“1e3”之类的有效数字,我没有偏好,但接受它们将为您赢得布朗尼积分。;)

  10. 对于被零除的情况,您也许可以返回“NaN”(假设您希望实现错误处理)。

0 投票
15 回答
2281 浏览

code-golf - Code Golf:没有正则表达式的电子邮件地址验证

(编辑:什么是 Code Golf:Code Golf 是用您喜欢的任何语言的字符数以最少的代码量解决特定问题的挑战。 更多信息请参见Meta StackOverflow。)

Code Golfers,这是字符串操作的挑战。

电子邮件地址验证,但当然没有正则表达式(或类似的解析库)。与其说是电子邮件地址,不如说是您可以编写多短的不同字符串操作和下面给出的约束。

规则如下(是的,我知道,这不符合 RFC,但这些将是本次挑战的 5 条规则):

  • 该组中至少有 1 个字符位于 @ 之前:

    /li>
  • @ 必须存在,只存在一次

    /li>
  • 句点 (.) 必须在 @ 之后恰好存在一次

    /li>
  • @ 和以下之间至少有 1 个[AZ, az]字符。(时期)

    /li>
  • 在最后的 . 之后至少只有 2 个 [AZ, az]字符。时期

    /li>

请仅发布方法/函数,它将采用字符串(建议的电子邮件地址),然后根据电子邮件地址有效(真)或无效(假)返回布尔结果(真/假)。

祝你好运!

0 投票
26 回答
5332 浏览

language-agnostic - 代码高尔夫:七段

挑战

按字符计数的最短代码生成七段显示给定十六进制数的表示形式。

输入

输入仅由数字 [0-9] 和小写和大写的十六进制字符 [a-fA-F] 组成。没有必要处理特殊情况。

输出

输出将是输入的七段表示,使用这些ASCII面:

限制

禁止使用以下内容:eval、exec、system、figlet、toilet 和外部库。

测试用例:

代码计数包括输入/​​输出(即完整程序)。

0 投票
23 回答
7817 浏览

language-agnostic - 代码高尔夫:决策树

在 Google Code Jam 2009第 1B 轮中,有一个称为决策树的问题,它为自己提供了相当有创意的解决方案。

发布您的最短解决方案;假设您不只是为了解决这个问题而创建一种新语言,我会以半频率将 Accepted Answer 更新为当前最短的条目。:-P

目前排名:

0 投票
28 回答
12397 浏览

language-agnostic - 代码高尔夫:激光

挑战

按字符计数的最短代码输入棋盘的 2D 表示,并根据输入输出“真”或“假” 。

该板由 4 种类型的瓷砖制成:

只有一束激光,只有一个目标。墙壁必须形成一个任意大小的实心矩形,其中激光和目标放置在里面。“房间”内的墙壁是可能的。

激光射线从它的原点发射并传播到它所指向的方向。如果激光射线击中墙壁,它就会停止。如果激光射到镜子上,它会向镜子指向的方向反射 90 度。镜子是双面的,这意味着两面都是“反射性的”,并且可以以两种方式反射光线。如果激光束击中激光 ( ^v><) 本身,它会被视为一堵墙(激光束会破坏光束器,因此它永远不会击中目标)。

测试用例

代码计数包括输入/​​输出(即完整程序)。

0 投票
14 回答
2346 浏览

language-agnostic - 代码高尔夫:蜂巢

挑战

将根据用户输入生成蜂箱的按字符数计算的最短代码。

蜂箱定义为六边形网格,用户输入的大小为两个大于零的正数(无需验证输入)。第一个数字 ( W) 代表蜂箱的宽度 - 或 - 每行有多少个六边形。第二个数字 ( H) 表示蜂箱的高度 - 或 - 每列有多少个六边形。

单个六边形由三个 ASCII 字符组成:_、 、/\三行:

六边形相互补充:蜂箱的第一列将是“低”,第二列将是高 - 交替并以相同的模式重复形成 W 六边形。这将重复 H 次以形成总共 WxH 六边形。

测试用例:





代码计数包括输入/​​输出(即完整程序)。

0 投票
12 回答
3067 浏览

language-agnostic - 代码高尔夫:音符

挑战

按字符数计算的最短代码,将根据用户输入输出乐谱。

输入将由一系列字母和数字组成——字母代表音符的名称,数字代表音符的长度。一个注释由 4 个垂直列组成。音符的头部将是大写O字母,词干(如果存在)将是 3 行高,由管道字符组成|,而标志将由反斜杠组成\

有效的音符长度是无、音符的 1/4、音符的 1/8、音符的 1/16 和音符的 1/32。

注释是工作人员上的位置,根据它们的注释名称:

所有输入都可以假定为有效且没有错误 - 每个音符在一行上用空格分隔,至少有一个有效音符。

测试用例



代码计数包括输入/​​输出(即完整程序)。

0 投票
13 回答
3509 浏览

language-agnostic - 代码高尔夫:玩立方体

挑战

按字符数计算的最短代码,将根据用户输入输出打砖塔系列。

输入将是一系列数字(正数、负数和零),表示当前立方体塔在其索引之后的高度。高度为 0 表示没有塔并且是间隔的。

立方体塔由堆叠的立方体组成。如果当前索引上的输入数字为正,则立方体上升,如果输入数字为负,则立方体下降。使用以下 4 行绘制单个立方体:

立方体是 3D 的——这意味着当两座塔并排放置时它们会相互隐藏,从而产生假透视。

所有输入都可以假定为有效且没有错误 - 每个数字在一行上用空格分隔,至少有一个数字。

测试用例



代码计数包括输入/​​输出(即完整程序)。