Questions tagged «string»

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

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

27
从字符串中删除唯一元素
我遇到了这个问题,因为在字符串中查找唯一字符似乎是非常常见的用例。但是,如果我们想摆脱它们怎么办? 输入仅包含小写字母。仅使用从a到z的字母。输入长度可以是1到1000个字符。 示例: 输入:helloworld 输出:llool 目标:最短的代码胜出 语言:TIOBE语言的前20名
12 code-golf  string 

14
完成对称图
您将获得四分之一的地图,该地图在x轴和y轴上对称,作为输入。该程序应打印完整的地图。 该地图可以包含以下字符:-+/\|.,并且应该按预期的方式将其打开。输入数据始终为矩形且较小。 例 $ cat in +--- |./. |/.. $ ./solution < in +------+ |./..\.| |/....\| |\..../| |.\../.| +------+ 最短的代码获胜。
12 code-golf  string 

6
修正口吃的话
口吃是我们许多人可能已经经历或至少看到的问题。尽管大多数著名的语音识别软件都存在口吃的严重问题,但让我们想象一下一种软件,该软件可以理解口吃但无法修复口吃,只能照原样编写。 用这样的软件编写的示例文字可能是这样的:“请小心”。在此示例中,“小心”是原始单词,“ ca ca”是断断续续的单词。 挑战 编写一个程序或函数,通过保留输入中的原始单词,通过从输入中删除它们来修正出现的单词。例如,“请小心”的固定版本将是“请小心”。 这是代码高尔夫,每种语言的最短答案胜出! 什么是口吃的单词? 口吃有许多不同的变化。但是为了简化此挑战,我们将其限制为以下规则: 口吃的单词可能是原始单词的未完成部分或全部。所谓“未完成的部分”,是指原始单词应完全以口吃单词开头。例如“OPE”和“开放”既可以是一个结巴字的“开放”,但“笔”不能因为一个“开放”不是以“笔”。 口吃的单词必须至少包含一个“ aeiou”元音。例如,“ star”可以是“ start”的口吃词,因为它包含“ a”,但是“ st”不能是口吃的词,因为它不包含任何上述元音。 口吃的单词只能出现在原始单词之前,应重复至少两次才能有效(原始单词不计入重复中)。例如,“ oo open”具有口吃的单词,但没有“ o open o”,因为原始单词之后的“ o”不计算在内,原始单词之前的“ o”没有重复至少两次。“ go go go go go go go”在原始单词之前有五个重复的口吃单词,并且有效。 一组重复的口吃单词不能包含混合形式,并且单词应该彼此完全相同。例如,“ op o op open”不算作口吃的单词。另一方面,“ o op op open”具有口吃单词,因为在这里第一个“ o”被视为一个完全不同的单词,而两个“ op”被视为“ open”的口吃单词。 如果有多个有效的重复设置的紧接单词,则仅保留最后一个原始单词。例如,在“ ooo op op op open”中,“ oo …
12 code-golf  string 

9
邮递员送达
我刚刚获得了邮递员的工作,我需要您的帮助才能保留它。我必须先订购大量邮件,然后再出去递送。 街道严格按顺序编号,从街道开始处的1开始,然后继续以不跳过任何数字的方式一直到结尾,左侧为奇数,右侧为偶数。加上房屋是在以后添加的,因此我们可能还会在公民编号后附加字母。 箱子中包含城市的所有邮件,因此我只能选择街道上的邮件。 我需要您的帮助才能更快地订购邮件。我要你写的是编写函数或完整程序: -街道名称。 -按照我的路线订购的公民编号列表。 -地址列表(代表邮件箱)。 并输出仅包含我街道地址的地址列表,并按照公民编号列表进行排序。 地址的格式为: Person Name/n CivicN Street Name 其中CivicN是“/”可以遵循由一个数字和一个大写字母(10 / B)。如果愿意,可以使用小写字母。 如果街道名称重叠,则将其视为不同的街道: Church Road != Saint Lorenz Church Road 为了简单起见,我们忽略了其余地址(假设每个邮件都相同) 信件必须快速送达,以便赢得最短的答案。 例: 版面: 1 1/B 3 5 7 9 11 13 ============================== 2 4 4/B 6 输入: "Tea Avenue" ["1","1/B","2","4","3","5","7","4/B","6","9","11","13"] ["Mrs. Pie O. Pinky\n6 …
12 code-golf  string 

20
咨询回答者
原文:https://james-iry.blogspot.co.at/2009/05/brief-incomplete-and-mostly-wrong.html Alain Colmerauer设计了逻辑编程语言Prolog。他的目标是创建一种与两岁的孩子一样聪明的编程语言。为了证明自己已经成功实现了目标,他提出了一个Prolog程序,该程序可以为所有查询提供足够的答案“否”。 问我任何事! ?- (他当然没有。)您的任务是创建一个比Alain Colmerauer的程序更智能的程序。不必在Prolog中。 细节 如果输入以结尾?并且至少有一个,,则从最后一个返回文本,,直到最后一个?。 否则,如果输入以?return 结尾No。 否则,返回Yes。 规则 没有标准漏洞。 输入/输出将通过我们的标准输入/输出方法进行。 您的程序必须至少查询1次。 您应该输出已处理的查询。 在示例中,Yes和No区分大小写。 您可以确保,如果输入包含a ?,则输入将只有一个?,并且它将始终是最后一个字符。 输入将始终是短语/句子。这句话/句话绝不会只包含字符,和?,如,,?和,?无效投入。(尽管提交仍然可以实现,因为在这种情况下,短语/句子是一个空字符串。) 此外,输入将永远不会以结尾,?。 如果紧接在末尾,或之前有空格?,则应将其包含在输出中。 例子 Hmm. -> Yes Alright, -> Yes Ask me anything! -> Yes Ask me a question, please! -> Yes Are you okay? -> No No? -> No …
12 code-golf  string 

13
归一化Malbolge到Malbolge转换器
在此任务中,您将编写一个程序/函数,该程序/函数采用Normalized Malbolge程序并输出生成的Malbolge程序。(这是所有Malbolge程序员都在使用的秘密工具!) 输入值 (以某种方式)表示Normalized Malbolge程序的数据结构。 输出量 表示所得的Malbolge程序的数据结构。 例子 jpoo*pjoooop*ojoopoo*ojoooooppjoivvvo/i<ivivi<vvvvvvvvvvvvvoji (=BA#9"=<;:3y7x54-21q/p-,+*)"!h%B0/.~P<<:(8&66#"!~}|{zyxwvugJ% jjjj*<jjjj*<v ('&%#^"!~}{XE jjjjjjjjjjjjjjjjjjjjjjj*<jjjjjjjjjjjjjjjjjjjjjjjj*<v ('&%$#"!~}|{zyxwvutsrqpnKmlkjihgfedcba`_^]\[ZYXWVT1| 如何转换 遍历标准化的Malbolge程序,对每个字符执行以下步骤: *jpovi</用中的相应字符替换字符串中的字符'(>DQbcu。(即,映射*到',j到(,等等。) 然后从字符的ASCII码中减去程序计数器的当前位置(即当前字符之前的字符数)。 如果生成的ASCII码小于33,则将其增加94,然后重复直到至少为33。 将结果字符追加到输出。 规则 这是一场代码高尔夫球比赛;最短的答案将获胜。 请没有标准漏洞。 允许使用默认的I / O方法。 输入将仅包含字符*jpovi</。
12 code-golf  string 

29
计算单词中所有可能的字母组合
系统会为您提供一个字符串,其中将包含普通的az字符。(您可以假设在任何测试中都是如此,并假设所有字母也都为小写)。您必须确定可以对字符串中的各个字符进行多少个唯一组合,然后打印该数字。 但是,在计算可能的组合时,可以忽略重复的字母。换句话说,如果给定的字符串为“ hello”,则仅切换两个ls 的位置不会算作唯一短语,因此无法计入总数。 最短的字节数获胜,期待看到一些非高尔夫语言的创造性解决方案! 例子: hello -> 60 aaaaa -> 1 abcde -> 120
12 code-golf  string 

30
打印最后输入的字节
挑战 您有一个输入字节字符串,在其中输出最后一个字节。 规则 您的提交可能是在输入中输出最后一个字节的程序或函数, 是字符串,stdin或命令行参数,并且 是非空的。 我当时想尽力解决这个问题,但是所有语言都可以参加。这是代码高尔夫球。 例子 "?" -> "?" "29845812674" -> "4" 目录 这篇文章底部的Stack Snippet从答案a)生成目录,答案是每种语言的最短解决方案列表,b)是总体排行榜。 为了确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果您想在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在代码段中: ## [><>](https://esolangs.org/wiki/Fish), 121 bytes 显示代码段 /* Configuration */ …
12 code-golf  string 

1
疯狂的化学家和聪明的程序员
背景故事 您在化学实验室醒来时头昏眼花,并且意识到自己被一位老疯子化学家绑架了。由于他的年龄使他看不清视线,因此他希望您为他工作,只有这样,您才可以逃脱实验室。 任务 您的任务是返回分子的结构式,其化学式将作为输入给出。请注意,只有碳(C),氧(O)和氢(H)原子将用作输入。与化学公式不同,a 0是有效的量词,1不能省略a(例如C1H4O0,有效输入,但CH4不是)。 为了避免歧义,我们假设分子中不存在双键和三键。所有碳原子需要4个单键,所有氧原子需要2个,氢原子需要一个。我们还假设O-O债券也不存在。该分子不必存在也不是稳定的。 输入中的3碳原子绝不能超过以确保输出显示中的亮度。 您只应显示碳原子排列成直线而不中断的分子。嗯,没有C-O-C债券。 您必须返回之前规则未排除的所有可能分子。您不需要处理无效的输入。 以下示例显示了该分子必须处理的所有解决方案。 在分子式之一的页面平面上旋转180度被认为是多余的,不需要显示。 在下面的示例中,我将显示一个分子的所有可能的分子式,然后指出不需要显示的分子式。 例 输入: C2H6O2 首先,这里是此输入的所有可能公式(谢谢@Jonathan Allan) 01 H | O H | | H - O - C - C - H | | H H 02 H | H O | | H - O - C - …

4
抽象语法树高尔夫:FizzBu​​zz,Python
摘要 用最少的令牌在Python中实现FizzBu​​zz。 挑战 编写一个打印十进制数字(从1到100)的程序。但是,对于三倍打印“ Fizz”而不是数字,对于五倍打印“ Buzz”。对于三和五的倍数的数字,请打印“ FizzBu​​zz”。程序必须使用某些版本的Python编写。 有关更多详细信息,请参见1,2,Fizz,4,Buzz 计分 您的分数将等于此程序针对Python 3或该程序针对Python 2报告的代码抽象语法树中的节点数。要运行程序,请提供代码的文件名作为程序的命令行参数。例如: python simple_counter.py fizzbuzz.py 这些程序基于Python的ast模块。如果您有任何困难,请告诉我。 为避免琐碎的解决方案,例如用实际程序执行长字符串或对输出进行硬编码,还有一些其他限制: 您的代码中的令牌不得超过15个字符。以上程序将为您检查此要求。注意,为了易于实施,上述程序将注释计为标记。 代码执行/评估被禁止。 如果您对是否允许某些物品有疑问,请问我。 计分启发法 以下规则通常足以计算程序的分数: 语句块是1分:if,for ... in ...,while,else,等。 独立语句是1点:print在Python 2, break,pass等。 变量是2分 单令牌面值为1点:2131,"Hello, world!",True 函数是3点(使用变量需要2点,额外需要1点):print在Python 3中range,等等。 运营商有2点:+,*,%,and,not,等。 = 是1分 增量赋值为二点:+=,|=,等。 括号,缩进等为0点。 与赋值或表达式相反,包含表达式的行为+ 1点。 完全有代码是1点。 挑战: 最低分获胜。祝好运!

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是not (a and b)) forall (通用量词) v0,v1,v2等。(变量) 这是一个句子的示例: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) 这not x是简写x nand x-实际的句子会用到(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

6
字符串操作解释器
摘要 制作了一种新的字符串操作语言,仅使用字符$+#-!*|@>!您的任务是在尽可能少的字节中为其实现一个解释器。 输入值 字符串,是此语言的一行。可以采用任何合理的方式(标准输入,函数参数,命令行参数等)或将其用作预定义变量。如果程序要求用户输入,请接受它从stdin要求的所有用户输入,仅此而已,请参见下文。您可能会认为它是一个有效程序。 输出量 无论使用哪种语言输出,以下说明。您必须以任何合理的方式(标准输出,函数输出等)输出字符串或变量值。语言明确输出后,必须转到stdout。禁止出现标准漏洞。 语言规格 处理和语法 该语言具有非常简单的处理形式,因为它仅执行字符串操作:它以空字符串("")开头,并随每个术语进行更改。一个术语由一个或两个部分组成:一个函数(在下面),然后可能是一个参数(在下面),用于编辑其行为。术语用竖线(|)分隔。您可能会认为它不会是一个空程序,并且任何条件都不会是空的。您应该在程序末尾输出该值。 功能 该语言只有6种功能,如下所示。每个函数都接受一个或零个参数。 + 连接字符串(采用一个字符串参数,将其连接到当前值) ! 反转当前值的字符顺序(无参数) * 重复字符串(采用一个整数参数,将当前值重复多次) - 删除所有出现的值(采用一个字符串参数,从当前值删除所有出现的值) $ [pseudo-]随机改组当前值(无参数) <将当前值输出到stdout(无参数) 价值观 这些是可以传递给函数的值,由匹配它们的正则表达式表示: @[^|]*字符串文字,包括除管道以外的任何字符。它可能是空的。 #[0-9]+ 整数文字 >下一行stdin。如果与一起使用*,则转换为整数。 测试用例 ╔════════════════════════╤═════════════╤══════════════╗ ║code │input │output ║ ╟────────────────────────┼─────────────┼──────────────╢ ║+>|!|+@hello|*> │13 │31hello31hello║ ║ │2 │ ║ ╟────────────────────────┼─────────────┼──────────────╢ ║+>|+@abcdefg|$ │hello │hcloeebafdlg ║ ╟────────────────────────┼─────────────┼──────────────╢ ║+@how areyou|-@o|-> …


12
拆分它。但不是所有的!
受此StackOverflow问题的启发。 输入: 我们将接受三个输入: D要分割的分隔符 一个I介于两个字符之间的字符,我们将忽略分隔符(我知道,这听起来有些含糊,但我将在下面进行解释) 一串 S 输出: 包含拆分后的子字符串的列表/数组。 例: Input: D = ',' I = '"' S = '11020199,"Abc ",aduz,,444,bieb,dc,2 ,2222.00,whatever 5dc,222.22,22.00,"98,00","12,000,000",21-09-2018, 06:00,",-,"' Output: ['11020199', 'Abc ', 'aduz', '', '444', 'bieb', 'dc', '2 ', '2222.00', 'whatever 5dc', '222.22', '22.00', '98,00', '12,000,000', '21-09-2018', ' 06:00', ',-,'] 为什么?有关逗号分割通常也分裂98,00,12,000,000并,-,在二/三段。但是由于它们在I输入字符中,因此我们忽略此处的拆分。 挑战规则: 您可以假设I输入字符串中总是有偶数个字符。 您可以假定该字符I将始终有一个D下一个字符(除非它是输入的第一个或最后一个字符),但仍然可以正确分割。所以你不会有类似之类的D …
11 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.