问题标签 [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 投票
10 回答
2544 浏览

language-agnostic - 代码高尔夫:代码 39 条码

挑战

按字符计数绘制 Code 39 条形码的 ASCII 表示的最短代码。

关于 Code 39 的维基百科文章: http ://en.wikipedia.org/wiki/Code_39

输入

对于 Code 39 条码,输入将是一串合法字符。这意味着 43 个字符是有效的:0- 9 A- Z (空格)和-.$/+%. 该*字符不会出现在输入中,因为它用作开始和停止字符。

输出

Code 39 条码中编码的每个字符都有九个元素、五个条形和四个空格。条将用#字符表示,空格将用空格字符表示。九个元素中的三个将是宽的。窄元素是一个字符宽,宽元素是三个字符宽。应在每个字符模式之间添加单个空格的字符间空格。应重复该模式,以使条形码的高度为八个字符高。

开始/停止字符*(bWbwBwBwb) 将表示如下:

  • 开始和结束字符*需要在条码的开始和结束处输出。
  • 条形码之前或之后不需要包含安静空间。
  • 不需要计算校验位。
  • 不需要完整的 ASCII Code39 编码,只需标准的 43 个字符。
  • 无需在 ASCII 条形码表示下方打印任何文本来识别输出内容。
  • 如果需要,该字符#可以替换为另一个更高密度的字符。使用完整的块字符 U+2588,将允许条形码在打印时实际扫描。

测试用例



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

0 投票
15 回答
1738 浏览

language-agnostic - File Fix-it codegolf (GCJ 2010 1B-A)

去年(2009 年),Google Code Jam将一个有趣的问题作为第 1B 轮的第一个问题:决策树

由于这个问题似乎是为类似 Lisp 的语言量身定做的,因此我们自发地在 SO 上进行了一次令人兴奋的 codegolf,其中一些语言设法用比任何 Lisp 种类更少的字符解决了这个问题,使用了相当多的不同技术。

今年的 Round 1B Problem A ( File Fix-it ) 似乎也是为特定的语言家族量身定制的,即 Unix shell 脚本。因此,继续“1B-A 传统”是合适的。:p 但是哪种语言的代码最短呢?让我们codegolf看看吧!

问题描述(改编自官网):

给你T个测试用例。每个测试用例包含N行,列出您计算机上当前存在的所有目录的完整路径。例如:

接下来,给您M行列出您想要创建的目录的完整路径。它们的格式与前面的示例相同。您可以使用该命令创建目录mkdir,但只有在父目录已经存在时才能这样做。例如,要创建目录/pyonpyon/fumufumu/yeahyeah/pyonpyon/fumufumu/yeahyeahyeah,您需要使用mkdir四次:

对于每个测试用例,返回您必须调用的次数mkdir以创建您想要创建的所有目录。

输入

输入由一个文本文件组成,其第一行包含整数T,即测试用例的数量。文件的其余部分包含测试用例。

每个测试用例都以包含整数NM的行开头,用空格分隔。

接下来的N行包含您计算机上当前存在的每个目录的路径(不包括根目录/)。这是一个或多个非空小写字母数字字符串的串联,每个字符串前面都有一个/.

以下M行包含您要创建的每个目录的路径。

输出

对于每个案例,打印一行Case #X: Y,其中X是案例编号,Y是解决方案。

限制

1≤T≤100。

0 ≤ N ≤ 100。

1≤M≤100。

每个路径最多包含 100 个字符。

每个路径在您计算机上已有的目录列表或所需目录列表中只出现一次。但是,路径可能出现在两个列表中,如下面的示例 #3 所示。

如果某个目录已在您计算机上的目录列表中,则它的父目录也将被列出,但根目录除外/

输入文件的长度最多为 100,000 字节。

例子

更大的样本测试用例可以在这里下载。

输入:

输出:

代码高尔夫

请以解决此问题的任何语言发布您的最短代码。输入和输出可以通过标准输入和标准输出或您选择的其他文件进行处理。如果您的代码在执行时有可能修改或删除现有文件,请包含免责声明。

获胜者将是在 2010 年第 1B 轮开始之前存在实施的语言中最短的解决方案(按字节数计算)。因此,尽管您可以自由使用您刚刚编写的语言来提交 0 字节解决方案,它不会计算在内,你可能会被否决。^_^

积分榜

0 投票
17 回答
5657 浏览

language-agnostic - 代码高尔夫:1x1 黑色像素

最近,我用我最喜欢的图像编辑器制作了一个 1x1 黑色像素(当你想用 HTML 便宜地绘制实心框时,它可以派上用场)。尽管我把它做成了单色 PNG,但结果却是 120 字节!我的意思是,这有点陡峭。120 字节。 对于一个像素。然后我将其转换为 GIF,将大小降至 43 字节。好多了,但还是...

挑战

生成1x1 黑色像素的最短图像文件或程序。提交可能是:

  • 表示 1x1 黑色像素的图像文件。选择的格式必须能够表示大于 1x1 的图像,并且不能是临时的(也就是说,它不能是您为代码打高尔夫球而编造的图像格式)。图像文件将按字节数排序。
  • 生成此类图像文件的程序。程序将按字符数排名,就像在代码高尔夫中一样。

只要答案属于这两个类别之一,任何事情都是公平的游戏。

此外,对于图像文件,请以十六进制或转义符指定它们,而不是使用外部图像主机 :-)

0 投票
9 回答
2870 浏览

language-agnostic - 代码高尔夫:电话号码到单词

SO上的代码高尔夫指南

我们都见过用文字表达的电话号码:1-800-BUY-MORE 等。

您可以编写的最短代码量是多少,它将为 7 位美国电话号码生成所有可能的单词组合。

输入将是一个七位数的整数(或字符串,如果更简单的话),并假设输入格式正确。

输出将是一个由七个字符组成的字符串列表,

例如,数字 428-5246 将产生

GATJAGM
GATJAGN
GATJAGO
GATJAHM
GATJAHN
GATJAGO
GATJAIM
GATJAIN
GATJAIO 等等.....

获胜标准将是来自任何语言的代码,该代码具有最少的字符,可以产生所有可能的字母组合。

补充笔记:

  • 为了使其更有趣,单词只能使用北美经典键盘手机上的字母组成,每个数字三个字母,如此处定义这意味着 Z 和 Q 被排除在外。
  • 对于数字“1”,请放置一个空格。
  • 对于数字“0”,请输入连字符“-”

将输出识别为真正的英语单词可获得奖励积分。好吧,不是真的。;-)

补充:好的,让我们使用“Nick's Modified North American Classic Key Pad”,它在 6 键上有一个“O”(哦,不是零)。

0 投票
13 回答
2366 浏览

language-agnostic - 代码高尔夫:钻石图案

挑战

根据输入,按字符计数的最短代码输出一个菱形图案。

输入由 3 个正数组成,分别代表菱形的大小和网格的大小。

菱形由 ASCII 字符/\空格组成。尺寸为 1 的钻石是:

网格的大小由菱形数量的宽度和高度组成。

测试用例



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

0 投票
14 回答
33177 浏览

language-agnostic - Code Golf - 横幅生成

当感谢某人时,你不想只是给他们发一封电子邮件说“谢谢!”,你想要一些 FLASHY 的东西:

编写程序来生成横幅。您只需要生成大写的 AZ 以及空格和感叹号(什么是没有感叹号的横幅?)。所有字符都由相同字符的 3x5 网格组成(因此 S 是由 S 组成的 3x5 网格)。所有输出都应该在一行上(所以没有换行符)。以下是您需要的所有字母:

获胜者是最短的源代码,按以utf-8 编码存储文件所需的字节数计算。源代码应该从标准输入读取输入,输出到标准输出。您可以假设输入将仅包含[A-Z! ]. 如果您因输入错误而侮辱用户,您将获得 10 个字符的折扣 =P。

我本来需要这 28 个字符,但为了让它更有趣,你可以选择你希望它们的外观 - 让你的代码更短!为了证明您的字母确实看起来像普通字母,请显示最后三个运行的输出。


迄今为止最短的代码,以字符为单位(如果存在非 ASCII 编码,则为 utf8 编码):

133 焦

205 蟒蛇

209 红宝石

313 哈斯克尔

345 C89

第382章

0 投票
10 回答
4600 浏览

language-agnostic - Code Golf:之字形图案扫描

挑战

按字符数计算的最短代码,它采用单个输入整数N(N >= 3) 并返回一个索引数组,在迭代时将根据 JPEG“之字形”扫描模式遍历Nx矩阵。N以下是遍历 8x8 矩阵src的示例:

之字形布局模式

例子

(中间矩阵不是输入或输出的一部分,只是输入表示的 NxN 矩阵的表示。)

笔记

  • 结果数组的基数应该适合您的语言(例如,Matlab 数组是从 1 开始的,C++ 数组是从 0 开始的)。
  • 这与这个问题有关

奖金

扩展您的答案以获取两个输入N和(N, M >=3) 并在x矩阵M上执行相同的扫描。(在这种情况下是列数和行数。)NMNM

奖金示例

0 投票
7 回答
2360 浏览

language-agnostic - 代码高尔夫:旋转迷宫

代码高尔夫:旋转迷宫


制作一个程序,接收一个由迷宫组成的文件。迷宫的墙壁由#. 迷宫必须包括一个由 a 给出的球和由 a 给出的o任意数量的洞@。迷宫文件既可以通过命令行输入,也可以通过标准输入作为一行读入。请在您的解决方案中指定哪个。

然后您的程序执行以下操作:

您可以假设所有输入迷宫都已关闭。注意:在这方面,孔有效地充当墙壁。

您可以假设所有输入迷宫都没有多余的空格。

按字符数计算最短的源代码获胜。


用 javascript 编写的示例:http: //trinithis.awardspace.com/rotatingMaze/maze.html


迷宫示例:



0 投票
7 回答
849 浏览

string - 代码高尔夫:重复文本的“颜色突出显示”

(感谢下面的 greg0ire 对关键概念的帮助)

挑战:构建一个程序来查找所有子字符串并用颜色属性“标记”它们(有效地在 XML 中突出显示它们)。

规则:

  1. 这只应该对长度为 2 或更长的子字符串进行。
  2. 子字符串只是连续字符的字符串,其中可能包括非字母字符。请注意,空格和其他标点符号不会分隔子字符串。
  3. 字符大小写不能忽略。
  4. “突出显示”应该通过在 XML 中标记子字符串来完成。您的标记应采用该子字符串和相同子字符串唯一的正数的<TAG#>theSubstring</TAG#>形式#
  5. 该算法的优先级是找到最长的子字符串,而不是在文本中匹配多少次。

注意:下面示例中显示的标记顺序并不重要。为了清楚起见,它只是由 OP 使用。


示例输入:


部分正确的输出(在此示例中,OP 可能没有完全替换)


您的代码应该能够处理边缘情况,例如:

示例输入 2:

示例输出 2:


获胜者,冠军:

  • 最优雅的解决方案获胜(根据其他评论、赞成票来判断)
  • 使用 shell 脚本的解决方案的奖励积分/注意事项

小说明:

  • 输入可以硬编码或从文件中读取
  • 标准仍然是“优雅”,诚然有点模糊,但它也封装了简单的字符/行数。其他人的评论和/或赞成票也表明 SO 社区如何看待挑战
0 投票
4 回答
2226 浏览

language-agnostic - 代码高尔夫:2D 平台游戏

挑战

  • 到达关卡的尽头!
  • 如果您准确地击中每个 (C)oin 块 2 次,则可获得奖励积分。

不允许

  • 以任何方式对命令序列进行硬编码。
  • 你最喜欢的“一个字符语言”恰好做了一件事,那就是解决这个高尔夫问题。

如何

您的程序通过标准输入接收以下级别(没有换行符)。
然后它必须打印出成功完成关卡所需的命令。

等级

  • S是你的起始位置。
  • E完成关卡所需的位置。
  • C是一个硬币块,里面有 2 个硬币,你永远不必跳过其中一个才能完成关卡。
  • C_算地,只有实地没有浮动平台。
  • | 是一堵墙,为了完成关卡,你需要跳上的所有墙最多只有 1 堵墙高,所有更高的墙都可以认为是你无法以任何方式摆脱的深渊。
  • x是尖峰,猜猜如果你触摸它们会发生什么。尖峰总是在它们周围的地面以下一层。

所有级别都是 4 行高,每行 63 个字符宽。这使得每个级别总共有 252 个字符。

注意: >< 只是为了说明边界,它们包含在程序的输入中。还要注意你的文本编辑器,因为我的空格多次搞砸了

命令

  • M = 将你向右移动 1,如果你下方没有地面,你会跌倒直到你撞到它。坠落时 不能移动。
  • J = 跳跃,在接下来的 3 个命令中将您向上移动 1 或直到您击中 (C)oin 块。在那之后,你会跌倒直到你到达地面。你只能在地面上跳跃。如果 M 将您带到与地面相同的高度,则跳跃将被取消。
  • O = NOP,会让你等待/什么都不做。这样你就可以跳过只有 1 个街区宽的洞和尖峰(你不需要这个对于上面的水平,但如果你能解决需要这个的水平,你会获得额外的积分)。

解决方案(带硬币块)

连续的命令堆叠在一起。
F表示您将跌倒的位置(请记住,跌倒时您不能做任何事情),

生成的命令序列,75 个字符长:

希望这会产生一些有趣的结果......而不是大量的火焰:O

编辑

好的,有比我最初想象的更多的可能性,我为所有的编辑道歉。