Questions tagged «string»

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

1
计数坎宁安链
素数总是让人着迷。2300年前,欧几里得在他的《元素》中写道 质数是仅由一个单位测量的质数。 这意味着素只能被 1(或本身)。 人们一直在寻找素数之间的关系,并提出了一些非常奇怪的东西(如“有趣的”)。 例如,一个索菲·热尔曼质数是一个主要p针对2*p+1也是素数。 一个安全素是一种主要p用于哪些(p-1)/2也是黄金,而这正是一个索菲·热尔曼质数的倒退状态。 这些与我们在此挑战中寻找的东西有关。 一个坎宁安链型我是一系列素数,其中除了最后一个的每一个元素是的索菲·热尔曼质数,而除了第一个的每一个元素是一个安全的黄金。该链中元素的数量称为它的length。 这意味着我们从素数开始p计算q=2*p+1。如果也q为质数,则我们有长度为2的I型Cunnigham链。然后进行测试2*q+1,以此类推,直到下一个生成的数字为复合数为止。 II型坎宁安链是按照几乎相同的原理构造的,唯一的区别是我们检查了2*p-1在每个阶段。 坎宁安链的长度可以为1,这意味着2 * p + 1和2 * p-1都不是素数。我们对这些不感兴趣。 坎宁安链的一些例子 2启动长度为5的I型链。 2, 5, 11, 23, 47 下一个构造的数字95不是素数。 这也告诉我们,那5,11,23和47不启动类型的任何链我,因为这将有前述的元素。 2也开始长度为3的II型链。 2, 3, 5 接下来是9,这不是素数。 让我们尝试II11型(之前我们将其排除在I型之外)。 好吧,接下来是下一个,它不是素数,因此该“链”的长度为1,我们不将其计入此挑战。21 挑战 写一个程序或功能,给定一个号码n作为输入,写入/返回的起始数第n个的坎宁安链I或II型的至少长度为2,后跟一个空格,随后链的类型它开始(我或II),然后是冒号,然后是该类型链的长度。万一素数同时启动两种类型的链(类型I 和型 II型),则首先计算型链。 例: 2 I:5 请记住,这n可能是任何类型的先前启动链的一部分,在这种情况下,不应将其视为该类型链的起始编号。 让我们看看这是如何开始的 我们从开始2。由于它是第一个素数,因此我们可以确定没有链从包含的较低素数开始2。 类型I中的下一个数字将是2*2+1 == 5。5是素数,因此我们已经有了至少长度为2的链。 我们将其视为第一条链。那II型呢?下一个号码是2*2-1 == 3。3是素数,因此II型的链长也至少为2。 …

5
文字处理1:连字
背景 这是有关文本处理的3洞高尔夫球场的第一部分。最重要的想法是,如果您输入一个输入文本并通过解决所有这三个挑战的解决方案(使用少量的粘合代码)来传递它,则它会吐出一段格式精美的段落。在第一个挑战中,您的任务是使用给定的连字模式对文本片段进行连字。 输入值 您的程序应采用两个字符串输入:一段文本和一个连字符模式列表。第一个输入只是一个可打印的ASCII字符和空格的非空字符串;它不会包含换行符或波浪号~。第二个输入是一个以逗号分隔的单词列表,由小写ASCII字符的代字号分隔的音节组成。一个例子是ex~cel~lent,pro~gram~ming,abil~i~ties。 输出量 您的程序应按以下方式修改第一个输入。在第二个输入中找到带连字符的小写字母的任何单词(字母ASCII字符的最大子串)都应由该带连字符的字母替换,但应保留其大小写。在上面的示例列表中,如果文本包含单词Excellent,则应将其替换为Ex~cel~lent;然而,Excellently应不会被修改。您的输出应为此修改后的字符串。 详细规则和计分 您可以假设以下有关输入的信息: 第一个输入不包含波浪号,也没有前导,尾随或重复的空格。它不是空的。 第二个输入至少包含一个单词,并且每个单词中至少包含两个音节。每个音节都是非空的。 第二个输入不包含在另一个单词中作为音节出现的单词。 如果需要,可以更改两个输入的顺序,还可以选择在输出中添加一个尾随换行符。 您可以编写函数或完整程序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 这些以格式列出1st input [newline] 2nd input [newline] output。 Excellent programming abilities, you work excellently! ex~cel~lent,pro~gram~ming,abil~i~ties Ex~cel~lent pro~gram~ming abil~i~ties, you work excellently! Superman (sometimes incorrectly spelled "Super-man") is super #&%@ing strong. su~per,some~times,in~cor~rectly,spell~ing Superman (some~times in~cor~rectly spelled "Su~per-man") is …

8
按字母顺序排列的Fannkuch
Fannkuch是一个经典的基准程序。该名称来自德语“ Pfannkuchen”(煎饼),该算法类似于翻转煎饼叠。Fannkuch的数字序列形成如下: 以{1 ..... n}的排列为例,例如:{4,2,1,5,3}。取第一个元素(这里为4),并颠倒前四个元素的顺序:{5,1,2,4,3}。重复此操作,直到第一个元素为1,这样翻转就不再更改:{3,4,2,1,5},{2,4,3,1,5},{4,2,3, 1,5},{1,3,2,4,5} 您将要编写一个程序或函数来为字母字符串计算出类似于Fannkuch的序列。应该使用字母在字母表中的位置,而不是使用数字来指示每次应翻转列表中的多少元素。例如,前导c表示您应该颠倒前3个元素的顺序,而前导a表示序列已完成。 输入值 输入将通过stdin作为字符串或作为函数参数提供。该字符串将包含1到26个不同的小写字母。字符串将不包含字母,这些字母的等效索引将导致Fannkuch算法翻转比现有数量更多的元素。 输出量 程序或函数应返回或打印以输出通过应用Fannkuch算法产生的术语序列,直到a遇到前导为止,包括初始字符串。例如,如果输入为bca,则可以打印: bca cba abc 打印的结果可以使用任何合理的分隔符-逗号,换行符等。可以选择任何空白。 再举一个例子,如果输入的是eabdc您可能会返回: ("eabdc" "cdbae" "bdcae" "dbcae" "acbde") 规则和计分 这是代码高尔夫球 -最短的程序获胜。不允许使用标准漏洞。

4
实现bzip2的行程编码
背景 应用BWT(在Burrows,Wheeler和Back中看到)和MTF(在Move到可打印的ASCII front中看到)之后,bzip2压缩器应用了一种相当独特的游程长度编码形式。 定义 出于这一挑战的目的,我们将转换BRLE定义如下: 给定仅包含ASCII字符且代码点在0x20和0x7A之间的输入字符串s,请执行以下操作: 用单次出现的字符替换每次运行的相等字符,并在第一个字符之后存储重复次数。 使用双射基数2以及符号和和对字符首次出现后的重复次数进行编码。{} 非负整数n被编码为字符串b k …b 0,使得n = 2 k i(b k)+ ... + 2 0 i(b 0),其中i({)= 1和i(})= 2。 请注意,此表示始终是唯一的。例如,数字0被编码为空字符串。 插入大括号字符串,该字符串编码相应字符单次出现后的重复次数。 分步示例 Input: "abbcccddddeeeeeffffffggggggghhhhhhhh" Step 1: "abcdefgh" with repetitions 0, 1, 2, 3, 4, 5, 6, 7 Step 2: "" "{" "}" "{{" "{}" …

2
ICS海事标志字母
船舶使用“国际信号代码”标志字母进行通信,尤其是静态信号。 您面临的挑战是编写一个程序或函数,该程序或函数将采用STDIN中的字符串或作为参数,并以ICS标志字母显示相应的文本。如果您的语言未显示在屏幕上,则可以保存到文件。 您的程序或函数应支持大写和小写字母AZ,以及Space和Newline。与其他字符的行为是不确定的。 显示器应足够大,以 能够水平显示至少8个标记,垂直显示 6个标记。如果在收到换行符之前到达右边缘,或者消息太长而无法垂直显示,则行为是不确定的。 标记字母如下所示(罗马字母仅供参考,输出中不需要。) 尺寸图 对于这些标志的尺寸,没有统一的标准,因此,出于本挑战的目的,应遵循以下规定: 标志应为60x60像素,水平和垂直之间应留有30像素的间隙。 A和B上的燕尾切口应深15像素。 所有其他线应为水平,垂直或成45度角。 通过将标志划分为侧面3、4、5或6个正方形的虚构NxN网格来定位特征。请参考上图,但需要进一步说明: A,E,H,K,L和U基于2x2网格:每个颜色区域的宽度应为30像素。F中菱形的点也应位于标志两侧的中间。 J和T基于3x3网格:每个波段应为20个像素。 P,N和S基于4x4网格。Y的对角线也应将标志的边缘分成4个。 C,D,R和X应基于5x5网格。十字架的带和臂的宽度应为12像素。 G,W,M,V基于6x6网格。G的带和W的边界应为10像素宽。M和V上的叉臂应覆盖标志每个边缘的前10个像素和最后10个像素,沿长边缘保留40个像素的三角形区域。 I的圆圈应位于标记的中心,并且直径为30像素。 上述文字的误差为+/- 1像素。如果您的语言仅支持可缩放的图形,则可以将“像素”解释为“单位”。 色彩 颜色应为您的语言或其文档定义的红色,白色,蓝色,黄色和黑色。如果您的语言没有定义颜色,则可以使用以下颜色:红色FF0000,白色FFFFFF,蓝色0000FF,黄色FFFF00,黑色0000000。 背景应为灰色(r,g和b通道相等,强度在25%和75%之间。) 计分/漏洞 这是代码高尔夫。以字节为单位的最短代码获胜。 不允许出现标准漏洞。 不能使用用于显示标志的内置函数或库函数。输出应为非文本(尤其是不得使用unicode字符来构建标志形状。) 例 JFK got my VHS PC and XLR web quiz 应该产生以下

15
填空
输入值 非负整数n,以及s仅包含字母数字字符和下划线的非空字符串_。的第一个字符s不是_。下划线s被解释为可以用其他字符填充的空格。 我们定义“无限字符串”的无限序列如下。字符串被无限次重复多次。对于所有的,字符串从得到通过用的字符填充它的空格,使得第一的被替换,所述第二带,等等。由于第一个字母不是,每个空格最终都会被填充,因此我们用无限字符串表示,其中每个字符串都已被其最终值替换。s1 = s s s...sk > 1sk+1sks1_sks1[0]s1[1]s_s∞_ 输出量 作为字符串的前n几个字符。s∞ 例 考虑输入n = 30和s = ab_c_。我们有 s1 = ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_... 替代的空白,我们有s1s1 s2 = abacbab_ccab_caabbc_abcc_abacbab_cc... 我们再次用空格代替,结果是s1 s3 = abacbabaccabbcaabbc_abcccabacbab_cc... 另一种替代: s4 = abacbabaccabbcaabbcaabcccabacbabbcc... 据此,我们已经可以推断出的前30个字符,分别是s∞ abacbabaccabbcaabbcaabcccabacb 这是正确的输出。 规则 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。输入错误会导致崩溃。 测试用例 0 "ab__" -> "" 1 "ab__" -> "a" 3 "ab__" -> "aba" …
14 code-golf  string 

4
编写魔术拼写检查器
游戏《挥舞的双手》介于纸笔魔术:聚会和精心制作的剪刀石头布之间。每转一圈,您就为每个手写下八个手势之一: 扭动的F姜 提供的Palm S小憩 Wave D指点 C圈数 staB N整理 几乎没有其他重要的优先规则: 如果双手示意,P您将自动投降。(这是一种简化,但是我们继续。) 一次只能用一只手做手势B。 同一只手执行的一系列手势可以投射一个咒语,其中每个咒语都与一个特定序列相关。这些序列可以重叠,但是每个手势只能用作单个咒语的最终手势(因此,您一次最多可以创建两个咒语)。有些咒语要求双手同时做出手势。 您的任务是给定每只手的手势列表,以确定在当前回合中可以施放哪些咒语。对于每只手,列表中的最后一个字母代表当前回合选择的手势。 这是手势序列的列表。大写字母表示单手执行的手势,小写字母表示双手进行的手势。 B Stab cDPW Dispel magic cSWWS Summon elemental cw Magic mirror DFFDD Lightning bolt DFPW Cure heavy wounds DFW Cure light wounds DPP Amnesia DSF Confusion DSFFFc Disease DWFFd Blindness DWSSSP Delayed effect DWWFWc Raise …
14 code-golf  string  game 

1
最小的类似Boggle的安排
如果忽略关于不多次使用同一字母多维数据集的规则,请考虑如何将单词排列在任意大的Boggle网格上。还要假设您有无限数量的字母立方体(所有字母都存在),并且是。QuQ MISSISSIPPI可以仅使用6个立方体来排列单词。这是一种可能的安排: S MIS PP 从开始,M我们反复在水平,垂直或对角线上采取任何步骤,直到拼出整个单词。 令人惊讶的是,更长的短语AMANAPLANACANALPANAMA也只需要6个立方体: MAN PLC 但是,较长,更复杂的字符串所需的最小多维数据集并不总是很明显。 挑战 编写一个程序,该程序接受一个字符串,并以类似于Boggle的方式对其进行排列,以便使用最少的多维数据集。(生成的网格的尺寸和空单元格的数量无关。) 假设除了空格(十六进制代码21至7E)之外,每个可打印ASCII字符都具有无限数量的多维数据集,因为它用作空网格单元。仅输入可打印的ASCII字符串(无空格)。 输入应从标准输入或命令行中获取。输出应转到stdout(或最接近的备用输出)。 输出中的前导或尾随换行符和空格都可以(但希望没有多余的数量)。 当字符串变长时,搜索空间将呈指数级增长,但是您无需尝试提高算法的效率(尽管那会很不错:))。这是代码高尔夫球,因此以字节为单位的最短解决方案为准。 例 如果输入是Oklahoma!(最少8个字符),则它们都是有效的输出,因为它们都具有正好8个填充的网格单元,并且它们遵循(修订)的Boggle读取模式: Oklaho !m 要么 ! Oamo klh 要么 lkO !amo h 等等

3
等于长度的表达式
给定一个数字,找到一个等于该数字且长度等于该数字的表达式。 因此,对于的输入15,您可能会输出sixteen minus one,其中包含15个字符(不计算空格)。如果存在多个解决方案,请打印所需的任何内容。如果不存在,请打印impossible 只使用运营商plus,minus,times,和divided by。从左到右评估操作员。 将1234格式化为one thousand two hundred thirty four。请注意缺少“和”,并且没有破折号或逗号。 输入和输出中使用的所有数字必须是小于10,000的正整数。 输入将作为命令行参数给出。打印到标准输出。 例子 1: impossible 4: four 7: impossible 13: eight plus five (you could also output "five plus eight") 18: one plus two times six (note that operators are evaluated from left to right) 25: one thousand …
14 code-golf  math  string 

7
摩尔质量的化合物
任务 编写一个程序,以吸收仅由原子序数小于或等于92(铀)的元素组成的化合物,并在中输出该化合物的摩尔质量grams/mole。 规则与限制 您可能无法使用直接为您计算摩尔质量的函数。 您的程序必须能够在脱机计算机上运行。 您可以使用一个单独的数据文件。必须提供此文件的内容。 如果选择使用1,则分数是程序的长度(以字节为单位)加上数据文件的长度(以字节为单位)。 这是代码高尔夫球,因此,最低分获胜。 输入值 包含该化合物的字符串。可以通读该字符串STDIN,将其作为参数传递或设置为变量(请指定哪个)。以下是所有有效输入: CH2 (一个碳,两个氢) (CH2)8 (8个碳,16个氢) U (1铀) 您的程序不需要对嵌入的括号(即((CH3)2N4)4)起作用,也不需要对包含原子序数大于92的元素的任何化合物起作用。如果您的程序在以上两种情况中的任何一种情况下均不起作用,则必须输出Invalid formula该情况-没有未定义的行为。 输出量 您应该STDOUT将中的化合物的摩尔质量输出到或输出到变量grams/mole。元素的原子质量列表可在此处找到(维基百科)。对于少于100个原子的化合物(四舍五入),您的答案应精确到小数位。 如果输入无效,则Invalid formula必须输出。 有关计算化合物的摩尔质量的信息,请参见grams/mole(Wikipedia)。 例子 Input Output H2O 18.015 O 15.999 (16 acceptable) C6H2(NO2)3CH3 227.132 FOOF 69.995 C6H12Op3 Invalid formula Np 237 (or Invalid formula) ((C)3)4 144.132 (or Invalid formula) CodeGolf …

7
是素数吗?无数学[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3年前关闭。 用任何一种语言来编写程序或函数,以表明输入是否为质数。 输入是一个字符串,表示以10为底的自然数。 输出是两个字符串“ Prime”或“ Not !!”之一。可以正确识别输入。 程序中的任何地方均不允许使用算术运算符,按位运算符,数字变量和常量,一般为“数学运算”等。您应该使用字符串操作来执行所有必要的“计算”。 您可以比较字符串长度(即数字)-如果不比较,则为-10。 您的程序应该可以在任何长度的输入上工作(给定足够的内存和时间)。 最低字节数(UTF-8)获胜。

4
强调高尔夫的语法!
高尔夫球手。 我们共同努力,产生的代码简洁,功能漂亮且比原始小说中的《歌剧魅影》丑陋。 现在是时候让我们将美丽带回到编程世界了。带颜色。以简洁的方式,功能上的美观比原始小说中的歌剧魅影更丑陋。 我们将要编写一个色彩丰富的语法荧光笔。以最短的代码量。 您将通过输入文件或Stdin收到有效的C文件。C文件将使用您选择的行约定,并且仅包含ASCII字符32-126。您必须将其转换为至少在Chrome中正确显示的HTML文件,该文件以语法高亮显示源代码。输出可能在文件中或到Stdout。 您必须突出显示: 绿色(#00FF00)中的所有字符串和字符(包括引号字符)。字符串可能包含转义字符。 蓝色的所有C保留字(#0000FF)。 黄色所有评论(#FFFF00)。 Pink中的所有C预处理程序指令(#FF00FF)。 在Chrome中显示时,输出必须: 采用固定宽度的字体 在原始来源中出现的任何地方显示新行 准确地复制空白。制表符应视为4个空格。 奖金 x 0.9(如果包含行号)。行号必须至少能够达到99999。所有源都必须仍然对齐-因此,行号较小的源代码应与行号较高的源代码在同一位置开始 如果每行的背景在浅灰色(#C0C0C0)和白色(#FFFFFF)之间交替,则为x 0.8 x 0.9(如果您的源代码是用C编写的,并且可以正确格式化自己)。 计分 这是代码高尔夫。分数是源代码的字节数乘以任何奖励。获胜者是得分最低的高尔夫球手。
14 code-golf  string 

10
创建一个Twitter解析器
介绍 您使用Twitter(如果没有,请假装),在这里您想与全世界分享的每条推文最多只能有140个字符。如果您想发推文给您的追随者亚伯拉罕·林肯(Abraham Lincoln)的葛底斯堡地址(Gettysburg Address),则需要将文本分成140个字符的大块,以使整个消息完整。但是,这些块不应该总是正好为140个字符长。举例来说,我们将演讲分为17个字符,最后得到了以下推文: 四分SE 以前的我们 布鲁克林 在这个骗局上 租一个新的NATI 关于L (等等) 那不好!当个别单词分解后,可能会很难理解您要说的内容。此外,在twitterverse中,您的关注者之一可能会遇到一条特定的tweet,但并未意识到消息的更多内容,因此,您需要对tweet进行编号,以便它们可以使用一些上下文(仍使用17个字符的块) ): (1/7)四分和 (2/7)七年前 (3/7)我们的对手 (4/7)爆发 (5/7)此大陆A (6/7)新国家 (7/7)在...中 您可以手动找出适合您的推文的最佳配置,但这就是我们拥有的计算机的功能! 挑战 在最短的代码中,将葛底斯堡地址(或任何文本,但以该文本为例)解析为一组不超过140个字符的推文(假定为ASCII,因为示例文本不应包含其中的任何不常见/不寻常的位)。 细节 您的函数/程序/等应该接受一个字符串参数,并为每条推文输出一行文本。 假设无论您选择哪种解析方式(只要该选择仍然适合挑战的其他方面),解析时此输入将永远不会导致超过99条总推文。 推文需要在推文主体之前包含“ ” 格式tweet number的total tweets指示符(x/y)。 此计数将占用您140个字符的空间! 推文块只能在换行符或空格上分割。 除非紧接在空格或换行符之前或之后,否则不允许使用连字符,句号,逗号或其他标点符号。 推文应包含尽可能多的完整单词。 这种约束有点灵活,例如,当您的最终推文只有一个字时 这是代码高尔夫球,所以最短的代码获胜。 葛底斯堡演说全文 (您的代码仍然应该能够处理传递给它的任何ASCII字符串。) 四年零七年前,我们的兄弟们在这个大陆上崭露头角,这是一个自由想象的新民族,致力于实现所有男人都享有同等地位的主张。现在,我们参与了一场伟大的民用战争测试,无论这种民族还是这么一个如此设想和奉献的民族都可以长期承受。我们在那场战争中大获全胜。我们已经将那部分田地作为最终的安息之所,专门用来拯救那些赋予他们生命的国家。总而言之,我们应该做到这一点。但更大的意义是,我们不能奉献,我们不能奉献,我们不能屈服。曾被困在这里的勇敢的人过世并丧生,他们在我们可怜的力量之上或不足以奉献它。世界将永远不会记住我们所说的一切,但它永远不会忘记他们在这里所做的一切。对于我们来说,生活品味是专门针对尚未完成的工作而进行的,远远超出了他们。对于我们来说,这是我们奉献给仍然存在的伟大任务的原因,这是我们自始至终认为奉献的原因,因为他们对奉献有了最后的全面衡量,因此我们要高度解决,但绝不应该这样做已经死了,这民族在神的掌控下将拥有新的自由,人民的人民统治也不会从地球上灭亡。
14 code-golf  string 

9
编写一个函数,返回给定动词的过去式
挑战 编写一个函数,该函数接受一个作为动词的自变量,并返回该动词的过去式。(假设动词是规则的) 过去式 注意:认为y既不是辅音也不是元音。 通常,仅ed在动词结尾之后加一个即可使动词的过去时。 例如:jump→ jumped,ask→asked 但是,还有其他规则。 如果给定动词的最后一个字符是e,只需加d。 例如:love→ loved,move→moved 如果动词以辅音+结尾y,则y改为i,并加ed。 例如:study→ studied,cry→cried 但是,如果动词以元音+结尾y,则只需添加即可ed。 例如:play→ played,stay→stayed 如果动词以元音和辅音结尾,则再写一次辅音,然后添加ed。 例如:stop→ stopped,plan→planned 但是,如果一个动词以多个元音+一个辅音或一个元音+多个辅音结尾,则只需添加即可ed。 例如:look→ looked,jump→jumped 还有更多规则,但让我们只关注规则。例如,根据上述规则,visit→ visitted。 优胜者 由于这是代码高尔夫球,因此正确返回过去时态的最短代码将获胜。 范例(JS,127) function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}
14 code-golf  string 

23
字符串中整数的总和,用非数字(例如“ a”和“ Y”)分隔
创建一个程序,该程序将在字符串中找到的所有整数求和,该字符串在程序中设置为变量(因此,该程序不必处理任何输入)。整数用非数字分隔(0、1、2、3 ... 9以外的任何数字)。 例子: e7rde f ,fe 43 jfj 54f4sD = 7 + 43 + 54 + 4 = 108 5 = 5 64 545,5445-32JIFk0ddk = 64 + 545 + 5445 + 32 + 0 = 6086 0ab0 = 0 + 0 = 0 额外说明: Unicode支持不是必需的,但允许 -n(其中,n是一个整数)的不计数为负n,但作为一个连字符,接着n。 答案可能会打印在屏幕上(但不是必需的)。 最短答案(以字符为单位)获胜。
14 code-golf  string 

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.