Questions tagged «string»

通过使用和操纵琴弦来解决特定问题的竞赛。

2
在此站点上,我们遵守热力学定律!
特别是第二定律:孤立系统的熵随时间增加。 为了这个挑战, “ 隔离的系统 ”将被视为程序或功能(从现在开始缩写为“程序”); 的“过一次 ”将对应程序的输出的重复执行,被视为一个新的程序; “ 熵 ”将被当作香农的一阶熵(将在下面定义),它是衡量字符串字符多样性的一种度量。 挑战 您的程序应该产生一个非空字符串,当以相同语言作为程序执行该字符串时,它会产生一个比前一个具有更大熵的字符串。无限迭代此执行输出过程必须产生严格增加的熵值序列。 字符串可以包含任何Unicode 9.0字符。字符串的顺序必须是确定性的(与随机相反)。 给定字符串的熵将定义如下。标识其唯一字符及其在字符串中的出现次数。频率p 我的的我个独特特点是字符由字符串的长度划分的出现的次数。熵就是 总和超过字符串的所有唯一字符。从技术上讲,这对应于离散随机变量的熵,其分布由字符串中观察到的频率给出。 令H k表示第k个程序产生的字符串的熵,令H 0表示初始程序代码的熵。另外,令L 0以字符表示初始程序的长度。根据挑战要求,序列{ H k }是单调的,并且是有界的(因为现有字符的数量是有限的)。因此,它有一个限制,^ h ∞。 所述得分提交的将是(ħ ∞ - ħ 0)/ 大号0: 分子,^ h ∞ - ^ h 0,反映到什么程度你的代码“服从”在一个无限时间跨度增加熵定律。 否定符L 0是初始代码的长度,以字符(而不是字节)为单位。 得分最高的代码将获胜。关系将得到解决,以便尽早提交/编辑。 要计算字符串的熵,可以在本文结尾处使用JavaScript代码段(由@flawr提供,并由@Dennis和@ETHproductions进行更正)。 如果获得极限^ h ∞在特定情况下是很难的,你可以使用任何下界,说^ h 20,计算得分(这样你可以使用(^ h 20 …

20
吉米将这些阵列放倒
我的同事Jimmy是C / C ++的新手。他也是一个学习缓慢的人。现在,公平地说,他的代码总是可以编译,但是他有一些很草率的习惯。例如,每个人都知道您可以定义如下数组: int spam[] = {4, 8, 15, 16, 23, 42}; 除了吉米,每个人都是。他深信制作数组的唯一方法是这样的: int spam[6]; spam[0] = 4; spam[1] = 8; spam[2] = 15; spam[3] = 16; spam[4] = 23; spam[5] = 42; 我在代码审查中一直为他修复此问题,但他不会学习。因此,我需要您编写一个工具,以便在他提交时自动为他完成操作¹。 挑战 我希望您编写一个完整的程序或一个将多行字符串作为输入并输出C数组的更紧凑版本的函数。输入将始终遵循此格式,包括空格: identifier_one identifier_two[some_length]; identifier_two[0] = some_number; identifier_two[1] = some_number; identifier_two[2] = some_number; ... identifier_two[some_length …
23 code-golf  string  parsing  c 

30
Champernowne的零在哪里?
考虑按顺序串联在一起的所有非负十进制整数的无限字符串(类似于Champernowne的常量): 0123456789101112131415161718192021222324252627282930...979899100101102103... 编写一个程序或函数,该程序或函数采用一个非负整数,该整数将索引(从0开始)到该无限字符串中。输出一个truthy如果数字索引值为0,否则输出一个falsy如果数字为1-9的值。 以字节为单位的最短代码获胜。 前25个产生真实性的输入是: 0 11 31 51 71 91 111 131 151 171 191 192 194 197 200 203 206 209 212 215 218 222 252 282 312 如果您的程序具有较高的内存效率,则表示荣誉,但这不是必需的。

10
XOROR序列
细胞自动机确实令人着迷。通常谈论的是二进制的,即可以用数字表示的那些。但是,在我看来,这些做法已经死了。三元CA更有趣,但是我们要考虑所有ASCII!那会是多么有趣! 我将为您介绍一个简单的决定规则,而不是为每个角色决定一个规则集。为了决定下一代产品,我们看一下三个“顶部”细胞,就像细胞自动机一样。观察一个例子: QWERTY X Y Z 的“顶部” Y是WER上方,右侧,上方,上方和左侧的单元格。Y将是我要定义的函数的结果,该函数是三字符字符串的函数。的“顶部” X是 QW,或者是不存在/缺少的单元格中填充的空间。 现在,为乐趣功能!由于某种原因,我将此序列称为XOROR序列。让A是左上角单元格则charCode,B是上述细胞则charCode,并且C是右上角的细胞则charCode。然后,将得到的细胞是其charCode为特点(A XOR B) OR C,那就是(A^B)|C。(如果结果值大于126,则将其设置为(CHARCODE % 127) + 32。如果值小于32 ,则不执行任何操作。)这是种子的示例Hello, World!: S: Hello, World! 0: mmmo/c_ z}~)e m = ( )^(H)|(e) = (32^72)|101 = 104|101 = 109 (m) m = (H)^(e)|(l) = (72^101)|108 = 45|108 = 109 (m) etc. 1: …

21
这是有效的变量名吗?
目的 编写程序或函数,以检查变量名是否有效并输出1或True有效,如果变量有效但以下划线(_)开头则为0.5,然后为0或False无效。 规则 如果变量名以下划线或字母(az,AZ,_)开头,并且其余字符为下划线,字母或数字,则在大多数语言中均有效。(az,AZ,0-9,_) 输出1,或者True变量名有效,或者0,或者False无效。 但是,以下划线开头的变量不是一个好习惯,因此如果以下划线开头且名称有效,则返回0.5。 测试用例 输入项 abcdefghijklmnop 输出量 1 输入项 _test_ 输出量 0.5 (以下划线开头) 输入项 123abc 输出量 0 (以数字开头) 输入项 A_b1C_23 输出量 1 输入项 _! 输出量 0 (不是0.5,因为它无效) 输入项 magical pony1 输出量 0 (没有空间) 有标准漏洞。 这是代码高尔夫球,因此最短的代码获胜。 奖励:如果您的程序/函数输出0一个空字符串(""),则为-10%。
23 code-golf  string 

8
用相应的字母替换数字
创建一个将数字作为输入的函数或程序,并输出一个字符串,在该字符串中,小写和大写字母的ASCII码点被其等效字符替代。 大写字母使用以下代码点: 65-90 小写字母使用以下代码点: 97-122 如果输入中的任何相邻数字等于字母的代码点,则该字母应替换输出字符串中的数字。 规则: 输入将是1到99位之间的正整数 您可以假设仅给出有效输入 您开始用整数(976-> a6而不是9L)的开头替换 输入可以采用任何合适的格式(字符串表示形式可以) 输出可以是任何合适的格式 适用标准规则 例子: 1234567 12345C 3456789 345CY 9865432 bA432 6566676869707172737475767778798081828384858687888990 ABCDEFGHIJKLMNOPQRSTUVWXYZ 6711110010100071111108102 Code000Golf 以字节为单位的最短代码获胜! 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 显示代码段 var QUESTION_ID=71735,OVERRIDE_USER=31516;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function …
23 code-golf  string 

11
圣诞老人需要送多少只精灵?
圣诞老人需要一些帮助来确定他需要多少精灵来帮助他向每所房子运送礼物。 煤炭比礼物重得多,因此圣诞老人每个屋子里每个顽皮的人都需要三个精灵。只需要两个精灵来帮助圣诞老人携带礼物。 在圣诞老人的地图上,一栋房子用表示*,每栋房子用拆分+。 房子的两边都会有一个数字-左边的数字代表房子里顽皮的人数,右边的数字代表房子里好人的人数。如果一侧没有数字,则将其解释为0。 圣诞老人不会拜访那些不懂圣诞节的人(他们甚至不配煤),因此有时候,房屋的两边可能没有号码。在这种情况下,圣诞老人不需要任何精灵的帮助 例如,圣诞老人的一张地图可能看起来像这样 1*3+2*2+1*+*2 在第一所房子里有1个顽皮的和3个漂亮的,圣诞老人将需要9个精灵。在第二个中,有2个顽皮和2个好人,圣诞老人将需要十个精灵。在第三间屋子里有1个顽皮和0个好人,圣诞老人将需要三个精灵,在最后一个屋子里,有0个顽皮和2个好人,圣诞老人将需要四个精灵。 不过,这是圣诞老人地图之一的过于简化的版本。通常,圣诞老人的地图有多条线,并且呈正方形,以便更好地适合他的列表。法线贴图可能看起来像这样(\n每行的结尾处是a ) 1*2+*+*4+1* 2*4+3*+1*6+* *+*+4*2+1*1 *4+*3+1*+2*3 3*10+2*+*5+* 在此地图中,圣诞老人需要((1 + 0 + 0 + 1 + 2 + 3 + 1 + 0 + 0 + 0 + 4 + 1 + 0 + 0 + 1 + 2 + 3 + 2 …
23 code-golf  string 

15
几何挑战
每个人都喜欢几何。那么,为什么我们不尝试编写高尔夫球代码呢?这项挑战涉及输入字母和数字并根据其形状。 输入 输入将采用的形式(shapeIdentifier)(size)(inverter)。 但是shapeIdentifier,大小和逆变器是什么? 形状标识符是您将使用*s 制作的形状类型的标识符。以下是形状标识符: s -正方形 t - 三角形 大小将介于之间1-20,它是图形的大小。 逆变器确定形状是否上下颠倒,用a +或a 表示-。请注意: s3-==(等于),s3+因为正方形是对称的。但是,t5-!=(不相等)t5+。 在输出中可以使用尾随空白,但不能使用前置空白。 输出实例 Input: s3+ Output: *** *** *** Input: t5+ Output: * *** ***** Input: t3- Output: *** * 特别说明 三角形输入将始终为奇数,因此三角形*的顶部始终以1结尾。 三角形的大小(如果是)是底部的大小,如果是 +,则是顶部的大小-。
23 code-golf  string  ascii-art  geometry  code-golf  ascii-art  subsequence  fewest-operations  test-battery  code-golf  array-manipulation  bitwise  code-golf  interactive  code-golf  music  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  simulation  code-golf  string  classification  code-golf  sequence  base-conversion  palindrome  code-golf  kolmogorov-complexity  code-golf  date  astronomy  code-golf  sequence  base-conversion  code-golf  geometry  combinatorics  code-golf  string  code-golf  math  array-manipulation  code-challenge  math  code-golf  card-games  code-challenge  array-manipulation  sorting  code-golf  code-golf  math  abstract-algebra  polynomials  code-golf  palindrome  factoring 

9
基本拉丁字符名称到字符
让我们回到基础! 您的代码(一个完整的程序或函数)必须将可打印的基本拉丁字符的正式Unicode名称转换为相应的字符。例如,对于输入,LOW LINE您的代码必须输出_。 您只需要输入一个字符名称即可。 您不能使用任何内置或以其他方式存在的预先存在的函数或库,这些函数或库提供与Unicode字符名称(例如Python unicodedata,Java Character.getName等等)特别相关的任何逻辑。 对于这些名称之一以外的输入,任何行为都是可以接受的。 这就是代码高尔夫:以字节为单位的最短代码获胜。 为避免歧义,这是我们将使用的全套正式角色名称(从这个问题中借来的): SPACE ! EXCLAMATION MARK " QUOTATION MARK # NUMBER SIGN $ DOLLAR SIGN % PERCENT SIGN & AMPERSAND ' APOSTROPHE ( LEFT PARENTHESIS ) RIGHT PARENTHESIS * ASTERISK + PLUS SIGN , COMMA - HYPHEN-MINUS . FULL STOP / SOLIDUS …

20
N平板斜切蛋糕
编写一个接受正整数N的程序或函数。 当N为1时,输出 /\ \/ 当N为2时,输出 /\/\ \/ / / / \/ 当N为3时,输出 /\/\/\ \/ / / / / / \/ / / / \/ 当N为4时,输出 /\/\/\/\ \/ / / / / / / / \/ / / / / / \/ / / / \/ 对于较大的N,图案会继续,每增加N就会添加一个新层。 “输出”表示打印斜线图案或将其作为字符串返回。 输出中允许使用单行尾换行符。 输出中允许尾随空格,但不允许前导空格。 以字节为单位的最短代码获胜。

10
*覆盖*标签
如果您曾经尝试过将标签添加到一个非常密集的图中,那么您将意识到有时标签会相互重叠,从而难以阅读。我们将执行类似的操作,但只是在一维中。 输入将是(label, x-coordinate)成对的序列,输出将是按给定顺序绘制每个点和标签的结果。*代表该点的星号应放在给定的x坐标处,并且标签应紧随其后。任何现有字符都将被覆盖。 例如,如果输入是 Hello 0 World 8 Fizz 3 Buzz 5 PPCG 16 X 9 然后将发生以下情况: *Hello *Hello *World *He*Fizz*World *He*F*Buzzorld *He*F*Buzzorld *PPCG *He*F*Buz*Xrld *PPCG 然后应输出最后一行。 I / O规则 输入可以包含任意数量的对。每个标签仅包含大写和小写字母,并且标签长度最多为127个字符。每个x坐标在0到127之间(含0和127)。 输入可以采用任何方便的列表或字符串格式,以使输入对明确无误,并且标签/ x坐标在输入中交替出现。例如,类似[("Hello", 0), ("World", 8) ...]或[0 "Hello" 8 "World" ...]很好的格式。但是,您可能不会假设标签和x坐标是两个单独的列表。 功能和完整程序都可以。 标签未覆盖的任何斑点均应以空格表示。但是,除单个可选的尾随换行符外,可能没有任何多余的前导或尾随空格。 例子 输入: OneLabel 10 输出: *OneLabel 输入: …
23 code-golf  string 

23
州和首都
给定一个字符串作为输入,如果它是州资本,则输出其资本为美国的州,如果它为州,则输出其国家的资本,或者Arstotzka都不是。 例子: Austin -> Texas Alaska -> Juneau The Nineteenth Byte -> Arstotzka 所有首都及其各自的州: Baton Rouge, Louisiana Indianapolis, Indiana Columbus, Ohio Montgomery, Alabama Helena, Montana Denver, Colorado Boise, Idaho Austin, Texas Boston, Massachusetts Albany, New York Tallahassee, Florida Santa Fe, New Mexico Nashville, Tennessee Trenton, New Jersey Jefferson, Missouri Richmond, …

9
格式化类似Lisp的语法
背景 (根据真实的,令人费解的故事) 在我的时间里,我经常玩Lisp和类似语言。我已经与他们一起书写,运行它们,对其进行了解释,对其进行了设计,并让机器为我为它们编写了……如果有什么困扰着我,那就是Lisp不符合我的特定格式样式。 不幸的是,每当复制和粘贴代码时,一些文本编辑器(cough XCode cough)都会剥离我漂亮的制表符和空格。 (A (B (C) (D)) (E)) (哪里ABCDE有任意函数) 一些文本编辑器将此可爱的代码分割到了下面: (A (B (C) (D)) (E)) 真是一团糟!这是不可读的! 帮帮我吗? 挑战 您在此挑战中的目标是采用一系列功能,这些功能以换行符分隔,格式如下所述,并返回更加美观的布局,突出可读性和优雅性。 输入 我们将Farity N参数的函数定义为类似于以下内容的构造: (F (G1 ...) (G2 ...) (G3 ...) ... (GN ...)) G1, G2, ..., GN自身的功能在哪里?一个arity 0函数A很简单(A),而arity 2函数B的形式是(B (...) (...)) 您的代码应在每个函数的前导括号之前(第一个函数除外)以一个换行符作为一系列函数来输入输入。上面的示例是有效输入。 您可以假设: 括号是平衡的。 一个函数缩进的次数永远不会超过250次。 每个函数都用括号括起来: () 函数名称将仅包含可打印的ASCII字符。 …

15
压低唯一字符
非常简单:您的程序或函数应生成以下文本: Elizabeth obnoxiously quoted (just too rowdy for my peace): "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG," giving me a look. 印刷精美 您可以编写一个程序或函数,该程序或函数将输出作为字符串返回或将其打印到STDOUT(或最接近的替代品)。您可以选择在输出中包含单个尾随换行符。 计分 代码中的字节数乘以代码中的唯一字节数 最低分获胜。 例如,在这种情况下,脑力激荡或空格答案将具有巨大优势,因为乘数将非常低(分别为8和3)。但是,通常,用那些语言编写程序会产生更长的代码,这可能会抵消该优势。 标准的漏洞这不再是滑稽的禁止。

5
升到英语翻译
您面临的挑战是编写一个程序,将leetspeak / lolspeak / txtspk(英语)翻译成正常的英语。您的程序应从标准输入和输出读取为标准输出,除非您的语言不支持这些。 您可以使用包含英语单词列表的文件,并用新行分隔。它应该被调用W,并将与您的程序位于同一目录中。(在GNU / Linux系统以及可能的其他系统上,您可以W链接到/usr/share/dict/words)列表不必全为小写,您可以使用它来确定单词是否应使用大写。 这是基于Nikos M.现在删除的问题,可以在此处找到。这不是重复的,因为此原始问题已关闭且未收到任何答案,因为没有获胜标准,并且用户不愿意输入。 计分 计分有点复杂! 你的分数是 (leet items + bonuses) * 10 / (code length) 最高分获胜。 您的程序不一定是完美的,也可能不是完美的,但是它越精确,它所获得的奖金就越多! 既然$可以同时表示s和S,则每个leet项目决定是否应使用大写字母(即句子开头的大写字母)可获得5分的奖励。 如果实现专有名词(始终带有大写字母的单词),则每个leet项目还将获得5分的额外奖励-这种方法的工作方式是,您可以浏览单词列表,并且如果单词中只有大写形式,则将输出大写。列表,如果两个版本都在那儿,那就猜吧。 如果一个字符具有两种含义(例如,1可以表示意思L或I),则每个leet项目仅获得那些构成真正英语单词的翻译,即可获得20分。为此,请使用单词表。如果一个leet物品的多个翻译成一个真实的英语单词,您可以任意选择其中一种有效的翻译,但仍然可以获得奖励。 升力清单 这些是您可以实现的重要项目。您不必全部实现它们,但是添加的越多,获得的积分就越多。 您无法通过将项目或角色翻译成自身来获得分数。该规则将覆盖我在列表中可能犯的任何错误。 做一个简单的tr或诱人s/.../.../g。真正的挑战是使用单词表确定多种含义中的哪种正确与否。 升项(每个项leet items在公式中加1) $-> s,S (-> c,C 5-> s,S @-> a,A 4-> a,A 3-> e,E 7-> t,T +-> t,T #-> …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.