Questions tagged «string»

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

6
实时字符串匹配
任务 任务是打入您选择的实时精确字符串匹配算法。 输入值 标准输入上提供两行文本,并用新行分隔。第一行包含“模式”,将只是从字母中提取的ASCII字符串a-z。 第二行包含较长的“文本”,也将只是从字母中提取的ASCII字符串a-z。 输出量 精确匹配发生位置的索引列表。您应该输出发生的每个比赛的开始位置。 规格 您的算法可以花费线性时间对模式进行预处理。然后,它必须从左到右读取文本,并为文本中的每个单个字符花费恒定的时间,并在出现任何新匹配项时立即输出。匹配当然可以彼此重叠。 算法 有许多实时精确匹配算法。例如,在KMP Wiki上提到了一个。您可以使用任意一个,但必须始终输出正确的答案。 我将保留每个语言领导者的表格,以便那些喜欢流行语言的人也能以自己的方式获胜。请说明您实施了哪种算法。 即时的 对于实时的含义似乎有很多困惑。这不仅仅是线性时间。因此,标准的KMP 不是实时的。问题中的链接明确指向KMP Wiki页面上有关KMP实时变体的部分。Boyer-Moore-Galil也不是实时的。这个理论性的问题/答案讨论了这个问题,或者只是谷歌“实时精确匹配”或类似的条款。

8
离散贝克地图
介绍 在贝克的地图是一个重要的动力系统表现出混沌行为。它是从单位平方到其直观定义的函数,如下所示。 将正方形垂直切成两半,形成两个大小为的矩形0.5×1。 将右半部分堆叠在左上方,形成一个矩形大小 0.5×2 将矩形压缩回1×1正方形。 在此挑战中,您将实现此转换的离散版本。 输入输出 您的输入是2D数组,可打印的ASCII字符和2m×2n某些字符的空白空间m, n > 0。您的输出是使用数组按以下方式获得的类似6×4数组 ABCDEF GHIJKL MNOPQR STUVWX 举个例子。首先,将数组的右半部分堆叠在左半部分的顶部: DEF JKL PQR VWX ABC GHI MNO STU 然后,将这些列拆分为成对的字符,并分别将每对字符顺时针旋转90度,将高矩形“压缩”回原始形状: JDKELF VPWQXR GAHBIC SMTNUO 这是上述阵列的正确输出。 规则 输入和输出格式灵活。您可以使用换行符分隔的字符串,字符串列表或2D字符数组。但是,输入和输出必须具有完全相同的格式:您必须能够对任何有效输入进行任意次数的提交迭代。 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 Input: 12 34 Output: 42 31 Input: Hell ! o d - lroW Output: lol …
15 code-golf  string  grid 

25
将字符串转换为其等效的Rövarspråket
Rövarspråket Rövarspråket是瑞典儿童玩的文字游戏,来自Astrid Lindgren撰写的有关Kalle Blomkvist的书籍。 基本规则如下(来自Wikipedia): 每个辅音(拼写很重要,不是发音)都会加倍,并且在中间插入一个o。 元音保持不变。 一些例子: “你好”->“ hohelollolo” “ Minsvävareärfull medål”->“ MoMinonsosvovävovaroreärorfofulollol momedodålol” 瑞典辅音与英文辅音相同,因此该程序应适用于瑞典语和英文条目。 在大多数情况下,字母“ y”在这种情况下被视为辅音。 你的任务: 编写一个程序,以将通过函数或通过stdin输入的一串瑞典字母转换为等效的Rövarspråket。以字节为单位的最短答案胜出!
15 code-golf  string 

3
每个字符多少个字符?
在http://shakespeare.mit.edu/上,您可以在一页上找到莎士比亚戏剧的全文(例如Hamlet)。 编写一个脚本,该脚本接收来自stdin的剧本的URL,例如http://shakespeare.mit.edu/hamlet/full.html,并输出每个与stdout对话的剧本字符的文本字符数,并根据谁进行排序说话最多。 戏剧/场景/动作标题显然不算作对话,角色名称也不算。斜体文本和[方括号文本]不是实际的对话,因此不应计算在内。对话中的空格和其他标点符号应计算在内。 (尽管我没有看全部,但是剧本的格式看起来非常一致。请告诉我是否忽略了任何内容。您的剧本不一定适合这首诗。) 例 这是Much Ado About Nothing中的模拟部分,以显示我期望的输出: 什么都不做 场景0。 信使 我会。 美丽 做。 莱昂纳托 你永远不会。 美丽 没有。 预期产量: LEONATO 15 Messenger 7 BEATRICE 6 计分 这是代码高尔夫。以字节为单位的最小程序将获胜。

3
查找最短的括号编号
括号号提供了一种仅使用左括号,空格和右括号([ ])表示大整数的简单方法。 括号号定义为一串或多对匹配的括号,[...]称为块,每串与它的邻居之间用零个或多个空格隔开。 每个块之间的空格数定义了它们之间的超操作。没有空格表示加法,1个空格表示乘法,2个空格表示乘幂,3个空格表示四次运算,依此类推。高阶超算术具有较高的优先级,因此四度运算发生在指数运算之前,指数运算发生在乘法运算之前,等等。它们也是右向关联的,因此a^b^c计算为a^(b^c)。(但a^b*c仍然是(a^b)*c。) 每个块可以为空([]),也可以包含另一个括号。空块的值为0。非空块的值为所包含的括号号加1。 实施例:(^^是迭代幂次,^^^是pentation) [[]]具有值1,因为它是0([])加1 [[[]]]的值为2,但是[[]][[]]因为两个([[]])相加,所以也是如此 [[[]]] [[[[]]] [[[[]]]]][[[]]] 值20 =(2 *(((2 ^ 3)+1))+ 2 [[[]]] [[[[]]]] 具有值65536 = 2 ^^^ 3 = 2 ^^(2 ^^ 2)= 2 ^^ 4 == 2 ^(2 ^(2 ^ 2)) [[[[]]]] [[[]]] [[]] 具有值7625597484987 = 3 ^^^(2 ^^^ 1)= 3 ^^^ 2 …

5
二进制卷积
二进制卷积由数字描述M,并应用于数字N。对于的二进制表示形式中的每个位M,如果将该位设置为(1),则通过将与相应位中的相应位相邻的两个位进行XOR N(在必要时进行环绕)来给出输出中的相应位。如果未设置该位(0),则输出中的相应位由中的相应位给出N。 一个有效的示例(具有8位值): 让N = 150,M = 59。它们的二进制表示形式分别为10010110和00111011。 根据M的二进制表示形式,卷积0、1、3、4和5。 位0的结果由对位1和7进行XOR运算得出(因为我们进行了环绕),得出1。 位1的结果由位0和2的XOR运算得出0。 位2的结果由原始位2给出,即1。 第3位的结果由第2位和第4位的XOR运算得出0。 位4的结果由位3和5的XOR运算得出0。 第5位的结果由第4位和第6位的XOR运算得出1。 位6和7的结果由原始位6和7给出,得出0和1。 因此,输出为10100110(166)。 挑战 给定N和M,输出执行Mon上描述的二进制卷积的结果N。输入和输出可以采用任何方便,一致且明确的格式。N并且M将始终在(包括)范围内[0, 255](8位无符号整数),并且应将其二进制表示形式填充为8位以执行二进制卷积。 测试用例 150 59 -> 166 242 209 -> 178 1 17 -> 0 189 139 -> 181 215 104 -> 215 79 214 -> 25 190 207 -> 50 61 …
15 code-golf  binary  integer  bitwise  code-golf  rational-numbers  code-golf  string  palindrome  code-golf  ascii-art  code-golf  code-golf  string  fibonacci  code-golf  math  sequence  code-golf  code-golf  string  palindrome  code-golf  string  code-golf  math  primes  source-layout  code-golf  sequence  binary  integer  code-golf  math  arithmetic  game  code-golf  restricted-source  palindrome  code-golf  restricted-source  palindrome  code-golf  combinatorics  binary  code-golf  string  math  code-golf  ascii-art  number  code-golf  cipher  code-golf  base-conversion  counting  code-golf  sequence  random  classification  code-golf  string  subsequence  code-golf  permutations  code-golf  string  code-golf  string  cipher  code-golf  kolmogorov-complexity  arithmetic  integer  code-golf  quine  markov-chain  code-golf  string  code-golf  code-golf  ascii-art  maze 

20
打印/输出所有正数,其中十进制表示形式的每个多位数字子字符串也为质数。
任务 您的任务是打印或输出所有正数,其中十进制表示形式的每个多位数字子字符串也都是质数。如果该数字至少包含2位数字,则意味着该数字本身也需要为质数。 例 6197是序列中,因为每一个多位数的子串6197是素数,即:61,19,97,619,197,6197(本身)。 请注意,这6不是质数,但6197仍处于序列中,因为6它不是的多位数子串6197。 8也处于序列中,因为其中的每个多位数字子串8都是质数。里面没有多位数的子串8,所以这是虚无的事实。 眼镜 除了允许您对输出进行硬编码或将与输出有关的信息存储在程序中之外,存在标准漏洞。 输出中的数字可以任意顺序。 输出中的数字允许重复。 如果选择打印而不是输出,则可以使用任何分隔符。 你是允许的,如果你选择要打印的,而不是输出到前缀和/或后缀输出。 分隔符,前缀和后缀不得包含任何数字(U + 0030至U + 0039)。 全部列表(58个项目) 1 2 3 4 5 6 7 8 9 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 113 131 …

5
现实生活中的共轭
在@Adám的 Dyalog APL扩展中,⍢(下)运算符表示共轭:应用一个函数,然后应用第二个函数,然后应用第一个函数的反函数。从共轭的角度考虑现实生活中的动作很有趣: 一个问题由g转换为另一个域,在该域​​中更容易由f解决,然后又转换回原始域。现实生活中的一个例子是“麻醉下”: apply anesthetics perform surgery wake up from anesthetics 挑战 线的g反面以“ un”开头g,反之亦然。按此s顺序,将其之间的任意一行及其反行定义为“在”之下s。每行f输入中的,依次为: 如果 f和都发生逆,则不执行任何操作 如果 f不是“没有”任何其他动作,请打印f 如果f在“一行”下g,则f + " under " + g在+串联处打印。 输入值 非空的多行字符串或字符串列表等,由空格和小写字母组成(您可以改用大写字母)。恰好一行将以“ un”开头;这将是其他一些线的反面。没有行将为空。 输出量 以您输入时使用的相同格式或标准I / O允许的格式输出。 测试用例: Input: apply anesthetics perform surgery unapply anesthetics Output: perform surgery under apply anesthetics Input: unite asia …

13
电脑密码
介绍: 在我小时候编写的文档中,我存储了许多不同的密码,我选择了一些我认为最适合挑战的密码(不太琐碎,也不太难),并将它们转变为挑战。它们中的大多数仍处于沙箱中,我不确定是否要全部发布还是仅发布其中几个。但是,这是第一个开始的事情。 计算机密码将给定的文本加密为给定的“随机”字符组length。如果这样的组包含一个数字,它将使用该数字索引到自己的加密字符组中。如果组中没有数字,则表示使用了第一个字符。 例如,假设我们要加密this is a computer cipher给定长度的文本5。这是一个潜在的输出(请注意:在下面的示例中,数字为1索引): t h i s i s a c o m p u t e r c i p h e r (without spaces of course, but added as clarification) qu5dt hprit k3iqb osyw2 jii2o m5uzs akiwb hwpc4 eoo3j muxer z4lpc 4lsuw 2tsmp …

19
字符串中数字的加减法
以一个字符串作为输入,并对字符串中的所有数字进行加/减,并输出这些运算的总和作为结果。 规则 字符串中的数字从左到右读取 如果数字(n)为奇数,请与下一个数字(n + n1)进行加法运算 如果数字(n)为偶数,则用下一个数字(n-n1)进行减法。 如果到达字符串的最后一位,请使用字符串的第一位执行操作 输出将是所有结果值的总和 如果字符串中只有一位数字,请自己执行操作(n + n或nn) 如果字符串中没有数字,则输出为0 例 Input: r5e6o9mm!/3708dvc Process: (5+6) + (6-9) + (9+3) + (3+7) + (7+0) + (0-8) + (8-5) Output: 32 笔记 接受功能或完整程序 最大输入长度将取决于您的语言对字符串输入的限制 字符输入无限制,但只有半角数字计入输出 最少的字节数获胜
14 code-golf  string 

10
解码Kaadi系统
您遇到过一本古老的印度手稿,其中描述了成堆的埋藏宝藏。手稿还告诉您宝藏的位置,除了一些关键数字已间接编码到文本中。您会发现文本使用的是“ Kaadi”系统,这是更常见的“ Katapayadi”系统的受限子集。 (Katapayadi系统是一种古老的印度系统,将数字编码为字母,通常用作记忆长数字的助记符。) 您的任务是解码在Kaadi系统中编码的文本并打印出数值。 细节 输入字符 Kaadi系统基于Katapayadi系统的规则,但仅使用第一行辅音。您在此处的文字已音译为拉丁字母,并且仅包含: 元音“ a”,“ e”,“ i”,“ o”,“ u” 辅音'g','k','c','j'以及它们的大写形式(代表这些辅音的吸引形式)以及'ṅ'和'ñ'。 (如果用您的语言更方便,则可以选择将'ṅ'接收为'ng',将'ñ'接收为'ny'。) 价值分配 在这个系统中 每个辅音后跟一个元音都有一个与之关联的数字。这些是: 'k'=>1, 'K'=>2, 'g'=>3, 'G'=>4, 'ṅ'=>5, 'c'=>6, 'C'=>7, 'j'=>8, 'J'=>9, 'ñ'=>0 但是请注意,这些值仅在这些辅音后跟有元音时才适用。 kacCi具有与kaCi(ka,Ci=(1,7))相同的值,因为中间的c不带元音。 此外,两个元音的初始元音或序列代表0 aikaCi将是:ai,ka,Ci=(0,1,7) 文本中间其他任何地方的多余元音都没有值:kauCia与相同kaCi,多余元音可以忽略。 最终数值 一旦找出字母的数字值,就获得最终数字值,其顺序与这些数字相反,即文本中的第一个数字是最终值中的最低有效数字。 例如。 GucCi具有Guand Ci,所以( kakakaGo4,7),所以最终值为74. 是(1,1,1,4),所以答案是4111. guṅKo是(3,2),所以编码为23(gungKo如果使用ASCII -当量。) 输入值 包含Kaadi编码文本的字符串 将仅包含元音和上述辅音 元音总是小写,并且以不超过2个的组出现 您可以选择接受5和0的字母作为Unicode字符“ṅ”和“ñ”,或者接受与ASCII等价的“ ng”和“ ny”(它们均以小写形式表示) …

24
分割并大写
挑战: 给定字符串在特定位置处分开,并大写给定单词的第一个字符。当且仅当第一个单词的大写字母已经被大写时,才将其大写 输入: 字符串s和字符c。 : 每次出现的字符串都c被替换为首个大写的char 例子 : STRING(s) CHARACTER(c) RESULT Hello_world _ HelloWorld me,no,like , meNoLike you-got-it - youGotIt Am^I^clear ^ AmIClear go!full!caps ! goFullCaps weird&but&tRue & weirdButTRue ProbleM1fixed1no 1 ProbleMFixedNo !prob!!lem!s!Olved!! ! ProbLemSOlved 注意 : 给定的输入将始终有效。ie:第一个将始终是一个字符串,至少包含一个要替换的字符实例。第二个将始终是单个字符。 输入字符串的长度将大于4。 至少有一次出现该字符的情况。 确保输入仅包含字母和分隔符(感谢@Arnauld) 分隔符是不是字母(az / AZ)的任何东西(@Dennis建议) 获奖标准: 这是代码高尔夫球,因此每种语言的最短代码(以字节为单位)获胜。 感谢@JonathanAllan指出了两个错误。
14 code-golf  string 

30
追加和删除
给定一行仅包含字母的行,请执行以下操作: 您维护的字符串开头是空的。 如果下一个输入字符在字符串中,请将其从字符串中删除。 如果下一个输入字符不在字符串中,请将其附加到字符串中。 输出字符串的最终状态。 您可以放心地假设输入至少包含一个字符(即非空),但是不能保证输出不为空。 伪代码(随意打高尔夫球): str = EMPTY for each character ch in input if ch exists in str remove all ch from str else append ch to str print str 输入匹配正则表达式^[A-Za-z]+$。 样本测试案例: ABCDBCCBE -> ADCBE ABCXYZCABXAYZ -> A aAABBbAbbB -> aAbB GG -> (empty) 输入可以以任何适用的方式给出,但必须将其视为字符串,并且对于输出也应相同。这个程序应该不会有错误退出。 每种语言中最短的程序将获胜! 额外(可选):请说明您的程序如何工作。谢谢。
14 code-golf  string 

14
两个名字
一个人有两个姓氏,如果他们的姓氏也是一个普通的名字。您需要确定列表中的哪些全名是两个名字。 John Smith John Doe Luke Ryan Ryan Johnson Jenna Jackson Tom John 名字列中出现的任何名称都可能是名字。如果名字在名字列中的出现次数大于在姓氏列中的出现次数,则它绝对是名字。 在上面的列表中,John姓氏出现两次,姓氏出现一次,因此绝对是名字。Ryan第一次出现在姓氏中,最后一次出现,所以(大概)是名字。 因此,Tom John肯定有两个名字并且Luke Ryan可能确实有两个名字。 给定以上列表,您的代码应输出以下内容: Luke Ryan has two first names Tom John definitely has two first names 输入值 如上所述,您的代码将采用全名列表(标准输入,每行一个),并用空格分隔。名称可以包含连字符或撇号,但是您将永远不会获得包含空格的名字或姓氏(即no Liam De Rosa,但Liam De-Rosa还是Liam De'Rosa公平的游戏。换句话说,名称将匹配)[-'A-Za-z]+。 每个全名都是唯一的(即John Smith不会出现两次)。 输出量 打印全名(每行一次),后跟一个has two first names或definitely has two first names是否符合上述条件。名称只能打印一次。 …
14 code-golf  string 

14
递归级联[N]的累积和与M次迭代
取两个正整数N,M并[N]通过M迭代创建的串联累积和。输出最后一次迭代的结果。 串联累积和的定义: 以数字开头N并定义顺序X = [N] 追加到X的累积和X 重复步骤2 M次。 向量的累加和X = [x1, x2, x3, x4]为:[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]。 N = 1和的示例M = 4: P =累积和函数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

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.