Questions tagged «string»

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

30
柯尔莫哥罗夫变速杆
输出或显示以下三行文本,与下面显示的完全相同。尾随换行符被接受。 bC#eF&hI)kL,nO/qR2tU5wX8z A!cD$fG'iJ*lM-oP0rS3uV6xY9 aB"dE%gH(jK+mN.pQ1sT4vW7yZ 该文本块与下面的文本块相同,但第n列向下旋转n次: !"#$%&'()*+,-./0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 请记住,这是一个kolmogorov复杂性挑战,因此输出格式并不灵活。

28
我什么时候吃三明治?
给定以下输入之一: 甜洋葱鸡肉照烧 烤箱烤鸡 火鸡胸脯 意大利BMT 金枪鱼 黑森林火腿 肉丸玛丽娜从1-7(或0-6)中输出一个数字,代表您获得交易的星期几,最低的是星期一。输入可以全部为小写或大写(例如“ italian bmt”)。禁止上网。

1
猜猜德语单词如何发音
介绍 与英语不同,德语被认为具有相当的音素书写系统。这意味着拼写和发音之间的对应关系很紧密。给定您不熟悉的任何单词,由于拼写系统,您仍然会知道如何发音。这意味着计算机应该能够正确执行此操作吗? 挑战 编写一个程序或函数,将代表德语单词的字符串作为输入,并以国际语音字母(IPA)打印或返回其发音。 我当然不会让您学习德语或完整的IPA。这个Wikipedia部分提供了您所需的几乎所有的德语到IPA规则,并且我已经编写了一个非高尔夫C#参考实现。 在该链接还提供了一个名单的400个共同德语单词和他们的IPA发音(需要验证)。以该列表为例,如果输入为solltest,则正确的输出为ˈzɔltəst。 参考实现添加了两个在Wikipedia部分中未提及的有用规则:假定单词重音位于第一个音节上(很有可能在德语中),并使用更好的试探法来确定字母“ e”何时表示schwa声音/ə/。它还对前缀执行特殊处理,但是并没有像我想的那样改善结果。 细节 要被视为有效条目,您的程序必须满足以下要求: 您的IPA输出必须与参考单词列表中的400个单词中的至少300个完全匹配(参考实现正确获得333个) 您的程序必须猜测任何可能是德语的单词。因此,我们有一项技术要求,这意味着对于任何与正则表达式匹配[a-zA-ZäÄöÖüÜ][a-zäöüß]*且具有至少一个元音(aeiouyäöü)的输入,您必须产生非空白输出,并且不能出错。 程序必须是确定性的(在给定相同输入的情况下始终产生相同的输出) 否则,将禁止出现标准漏洞(尤其是关于获取异地资源的漏洞) 您可以做其他杂项: 如果您必须在输出中包含前导和尾随空格 在输出中使用任何先前存在的字符编码(我想不到除了Unicode可以正常工作以外的任何方法,但是如果可以的话,恭喜) 假设输入采用某种规范化形式,例如Unicode规范化形式NFD,NFC等。例如,ä是写为单个字符还是基本字符+组合字符? 使用标准输入和输出方法 评分和IPA字符 得分以字节为单位。请注意,德语字符和IPA字符均为UTF-8中的2个字节。同样,IPA字符U + 0327下方的反向组合键(̯)是Unicode组合字符,它本身就是2字节的UTF-8字符。这意味着类似ɐ̯的东西在UTF-8中算作4个字节。对于好奇的人,此符号表示元音不构成音节核(上一个则不然)。 另外,请注意这些IPA字符在某些字体中看起来像其他ASCII字符:ɡ,ɪ,ʏ,ː(标记为长元音),ˈ(音节在多音节单词中带有重音的标记)。 参考单词列表的创建方式 本部分是挑战所不需要的额外信息。 该单词列表是从该维基词典单词频率列表中获取的,由于大小写不同以及两个单词在英语维基词典中没有德语条目而删除了重复单词(哦和嘿)。IPA来自英国和德国的维基词典。在提供多种发音的地方,我选择了较为正式和标准的发音。如果不清楚,我选择最适合一般规则的规则。 我还必须标准化字母“ r”的发音方式。这封信的发音很大程度上取决于该地区,而维基词典在所选择的那封信上根本不一致。我觉得它趋向于以下:“ r”的发音是/ɐ̯/,后面是长元音,而后面没有元音,否则是ʁ。因此,我更改了所有它们以遵循该规则,除了/(f)ɛɐ̯/非常一致的ver-和er-前缀。同样,我将“ eu”标准化为/ɔʏ̯/。

30
字符串减法
目的 创建一个函数以反向字符串连接 输入值 两个字符串(字母数字+空格),其中另一个应减去一个。 您可以假设要减去的字符串永远不会大于另一个。 输出量 减法的结果 减法 您应该从另一个字符串的开头或结尾删除一个字符串。如果字符串的开头和结尾都存在,则只能删除一个,然后由您决定删除一个。 如果字符串不是开头或结尾,或者不是完全匹配,则表示这是一个无效的减法,您应该输出原始字符串。 测试用例 有效减法 'abcde','ab' -> 'cde' 'abcde','cde' -> 'ab' 'abab','ab' -> 'ab' 'abcab','ab' -> 'abc' or 'cab' 'ababcde','ab' -> 'abcde' 'acdbcd','cd' -> 'acdb' 'abcde','abcde' -> '' 'abcde','' -> 'abcde' '','' -> '' 无效的减法(返回原始字符串) 'abcde','ae' -> 'abcde' 'abcde','aa' -> 'abcde' 'abcde','bcd' -> …
37 code-golf  string 

15
威尔士语单词多长时间?
编写一个程序或函数,该程序或函数接收代表威尔士语单词的字符串(UTF-8,除非您另行指定)作为输入。 以下是威尔士语中的所有单个字母: a,b,c,ch,d,dd,e,f,ff,g,ng,h,i,j,l,ll,m,n,o,p,ph,r,rh,s,t, ,, u,w 要引用维基百科, 虽然有向图ch,dd,ff,ng,ll,ph,rh,th用两个符号书写,但它们都被视为单个字母。例如,这意味着Llanelli(位于南威尔士的一个小镇)在威尔士语中被认为只有六个字母,而英语中只有八个字母。 这些字母也存在于威尔士语中,尽管它们仅限于从其他语言借来的技术词汇: k,q,v,x,z 带有变音符号的字母不会被视为单独的字母,但是您的功能必须接受它们并能够对其进行计数。可能的字母是: â,ê,î,ô,ô,û,ŷ,ŷ,á,é,í,ó,ú,ý,ẃ,ä,ë,ï,ö,ü,ü,ÿ,ẅ,à,è,ì, ù,ẁ (这意味着ASCII是不能接受的输入编码,因为它无法编码这些字符。) 笔记: 这是代码高尔夫。 您不必考虑像llongyfarch这样的单词,其中ng不是字母,而是两个单独的字母。这个单词有9个字母,但是您可以将其误认为8个字母。(如果您能解释这样的话,那真是太棒了,但超出了此挑战的范围。) 确保输入没有空格(除非您喜欢使用单个结尾的换行符(或更深奥的东西),在这种情况下可以提供)。当然不会有内部空格。 测试用例: 兰迪德诺,8 拉内利,6岁 瑞尔3 Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch,(50岁,但我们算50) Tŷr,3 西摩(Cymru),5岁 格林多7岁

5
克服集群规模
厌倦了闪存的可靠性,您决定将所有程序存储在这些旧的1,440 KiB软盘之一中。但是,即使复制不到3,000个程序,磁盘也已满。那怎么可能呢?就像您一样,精通代码高尔夫球技术,大多数程序甚至都没有100字节长,因此应该留有足够的空间... 在“超级用户”上查询该文件后,您发现文件系统的群集大小使您感到困惑,这是FAT12设计人员的恶作剧,使您的软盘中的大部分未被使用,并迫使您购买超出实际需要的容量。 买更多的软盘?决不!如果我们仅将多个程序保存在一个文件中,则群集大小将不再是一个问题,这是可能的,因为对于相同的源代码,不同的编译器/解释器的行为将有所不同。 任务 编写一个适合单个群集(小于或等于512个字节)的多语种,并尽可能解决以下许多任务。 串 读取所有输入并打印。 打印您好,世界!。 读取一行/参数(name)作为输入,并打印生日快乐[name]!。 阅读所有输入并打印我爱的标签!如果它包含一个或多个制表符(0x09),并且我讨厌空格!如果没有。 读取两行/参数,如果第二行是第一行的子字符串,则打印真实值,否则输出虚假值。 读取一行/自变量,如果字符严格按升序打印,则输出真实值;否则,输出虚假值。 读取行/参数和一个字符,并打印该字符所有出现的索引。 读取一行/自变量并打印出现次数最多的任何字符。 数学 读取两个介于0和255之间的整数,并打印它们的总和。 读取0到255之间的单个整数,并打印除以7的商和余数。 读取一个介于1到255之间的整数,如果它是一个复合数字(既不是1也不是素数),则输出一个真实值,如果不是,则输出一个虚假值。 读取一个介于1到255之间的整数,如果它是2的幂,则打印一个真实值,如果不是,则打印一个虚假值。 读取0到255之间的两个整数,并打印较大的整数。 读取介于0到255之间的十进制整数,打印其十六进制表示形式。 读取0到255之间的单个整数并打印其汉明权重(1位的数量)。 读取1到13之间的单个整数n并打印F n,第n 个斐波那契数。 例如,对于输入13,print 233。 艺术 读取一行输入/参数并对其进行构图。 例如,对于input Programming Puzzles & Code Golf,输出: +---------------------------------+ | Programming Puzzles & Code Golf | +---------------------------------+ 读取一个矩形的字符块并将其顺时针旋转四分之一圈。 例如,对于输入 tye xll epb …

22
忍者,猴子和熊,天哪!
这个挑战是NinjaBearMonkey赢得我的Block Building Bot群的奖励!挑战黑骑士的作品。恭喜NinjaBearMonkey! 这里的挑战相当简单,但是有多种可能的方法。传说在等距幻象世界中,有6种不同类型的生物: 忍者,缩写 N 熊,缩写 B 猴子,缩写 M NinjaBears,缩写 NB BearMonkeys,缩写 BM NinjaBearMonkeys,缩写 NBM (NinjaBearMonkey当然是最后一个最强大的类型。) 您的任务是对这些生物并排排列(即,它们的缩写字符串串联在一起)进行普查。需要注意的是,您需要确保不要将某些生物的部分计算为看起来相似的单独生物。这些生物将排队,以便: 的任何实例NBM都是1个NinjaBearMonkey和0个其他生物。 NB不跟的任何实例M是1个NinjaBear和0个其他生物。 BM不带前缀的任何实例N是1个BearMonkey和0个其他生物。 否则,实例N,B以及M分别是单忍者,熊,猴等。 该线从左到右读取。 因此,例如,在生物行中NBMMBNBNBM,有0个忍者,1个熊,1个猴子,1个NinjaBear,0个BearMonkeys和2个NinjaBearMonkeys。 挑战 写一个程序或函数,它在字符的字符串N,B和M,并打印或返回许多各6种动物中的如何存在于它。 输出应具有以下形式 #N #B #M #NB #BM #NBM 用相应的生物计数替换每个#符号。必须显示所有6个计数,即使它们为0,也要用空格隔开。但是,它们可以按任何顺序排列(例如,#NBM可以排在最前面)。 也: 输入字符串将只包含字符N,B和M。 如果输入空字符串,则所有计数均为0。 输出可以可选地包含单个前导和/或尾随空格和/或单个尾随换行符。 以字节为单位的最短提交获胜。 例子 输入:NB 输出:0N 0B 0M 1NB 0BM 0NBM 输入:NBM 输出:0N 0B …
37 code-golf  string 

30
检查单词字母是否按字母顺序排列
编写一个接受一串小写/大写字母[A-Za-z]作为输入的函数/程序,该函数/程序检查出现的字母是否唯一并且是否按字母顺序排列(忽略大小写)。如果输出是唯一的且按字母顺序输出,则输出必须为真,否则为假。 这里有一些测试用例 a true abcdefGHIjklmnopqrSTUVWXyz true aa false puz true puzz false puzZ false puZ true PuZ true pzu false pzU false abcdABCD false dcba false 如果您愿意,可以在像这样的单词列表的所有单词上运行程序,然后发布一些有趣的单词=)。 得分 最低字节数获胜。

18
丹麦文数到100
使用丹麦的计数方法,以正确的顺序打印0-100之间的所有数字 他们如何计数 像英语一样,他们有专用的0-20、30、40和100单词 他们没有说twenty-one和twenty-two,而是说one and twenty和two and twenty 从50开始,他们说10的倍数为n * 20 50 = half third times twenty = half way to the 3rd multiple of 20 60 = three times twenty 70 = half fourth times twenty 80 = four times twenty 90 = half fifth times twenty 因此,例如55将为five and …

30
随机大写
任务 您的任务是创建一个程序或函数,在给定输入的情况下,将输入文本输出为带有大写字母的随机字母,同时将已经大写的字母保持为大写字母。 小写字母大写的每种组合都应该是可能的。例如,如果输入是abc,应该有输出任何以下组合中的一个非零的概率:abc,Abc,aBc,abC,ABc,AbC,aBC或ABC。 输入值 您的输入是一个字符串,包含任意数量的可打印ASCII字符,例如Hello World。该输入的输出包括HeLLo WoRlD,HElLO WOrld等 计分 这是代码高尔夫,因此每种语言中最短的答案会获胜!

7
Python版本清单
Python是当今增长最快的主要编程语言。这是连续第三年最受欢迎的语言,这意味着尚未使用该语言的开发人员表示他们想学习它。[1] Python受欢迎的原因是其许多版本。[需要引用]实际上有116个Python版本,包括两个开发版本。 您的任务是按照您喜欢的顺序和格式,输出/打印所有Python版本的列表。您不得使用任何存储了此信息的内置函数。 您可以自由选择输出格式,但每个版本必须在标准的方式来确定:1.1,2.3.0,2.7.10等。 完整列表2 Python版本的,用逗号分隔如下所示: 1.1, 1.2, 1.3, 1.4, 1.5, 1.5.1, 1.5.2, 1.6, 2.0, 2.0.1, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.2, 2.2.1, 2.2.2, 2.2.3, 2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, …

19
支架扩展!
您面临的挑战是在程序的输入中扩展一些括号,如下所示: 在两个匹配的括号和之间找到一个字符串s,在括号后面加上一个数字n。[] 卸下支架。 重复s次,将其自身替换n次。(如果n为0,只需删除s。) 转到步骤1,直到输入中没有匹配的括号为止。 附加规则和说明: 您将接受输入并通过任何允许的方式提供输出。 在输出中允许尾随换行符。 您只需要在输入中处理可打印的ASCII。 您可以假定所有括号都匹配,即您将永远不会收到输入[]]]]或[[[[]。 您可以假定每个右括号]后面都有一个数字。 测试用例: Input -> Output [Foo[Bar]3]2 -> FooBarBarBarFooBarBarBar [one]1[two]2[three]3 -> onetwotwothreethreethree [three[two[one]1]2]3 -> threetwoonetwoonethreetwoonetwoonethreetwoonetwoone [!@#[$%^[&*(]2]2]2 -> !@#$%^&*(&*($%^&*(&*(!@#$%^&*(&*($%^&*(&*( [[foo bar baz]1]1 -> foo bar baz [only once]12 -> only once2 [only twice]23456789 -> only twiceonly twice3456789 [remove me!]0 -> before [in …

22
基本ASCII提示
替代标题:在墙上统计您的监狱判决 给定一个数字n,输出记录分为传统的每组5个和每行50个。 例子 1个 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| |/|| |/|| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

21
(A [l(t [e(r)n] e)s] t)一个字符串!
Alternesting,是将一个字符串并嵌套在交替的括号中的行为。这是改变字符串的方式。 对于长度为N的字符串,请使用中心N个字符,并将其括在括号中。因此,如果我们的字符串是Hello world!(12个字符),我们将得到 (Hello world!) 然后,取下其余的中心n-2字符,并用方括号括起来。在这种情况下,中间的10个字符是ello world,因此下一个迭代是: (H[ello world]!) 只要字符串中间剩余两个以上的字符,请重复最后两个步骤,在()和之间进行交替[]。这是最后的步骤: (Hello world!) (H[ello world]!) (H[e(llo worl)d]!) (H[e(l[l(o[ w]o)r]l)d]!) 由于最后一次迭代的中间只剩下两个字符,因此我们停止。我们的最后一个字符串是 (H[e(l[l(o[ w]o)r]l)d]!) 请注意中间的括号中如何有两个字符。当输入为偶数长度时会发生这种情况。如果输入为奇数长度(例如,Hello, world!添加了逗号),则中间将只有一个字符: (H[e(l[l(o[,( )w]o)r]l)d]!) 对于当今的挑战,您必须编写一个程序或函数,该程序或函数将字符串作为输入,并对其进行替换,然后输出新的字符串。您可以按照自己喜欢的任何合理格式进行输入和输出。输入将始终至少为一个字符长,并且仅包含可打印的ASCII。您还可以假定输入将不包含任何括号或方括号。对于传统语言来说,这没什么大不了的,但是对于某些深奥的语言来说,这可能会更容易。 与往常一样,这是一场代码高尔夫竞赛,因此请尝试使用您选择的语言做出尽可能短的答案。玩得开心! 测试IO #Input #Output "Alternesting is fun!" --> (A[l(t[e(r[n(e[s(t[in]g) ]i)s] )f]u)n]!) "PPCG" --> (P[PC]G) "Code-golf" --> (C[o(d[e(-)g]o)l]f) "4 8 15 16 23 42" --> …

30
起点等于终点吗?
任务 在此挑战中,您的任务是编写一个程序或函数,该程序或函数接受String,并根据输入String的第一个字符和最后一个字符是否相等,输出真值或伪值。 输入值 您可以以任何合理的方式接受输入。但是,不允许输入存在于预定义变量中。允许从文件,控制台,命令行,输入字段等进行读取,或将输入作为函数参数。 输出量 除了将结果分配给变量外,您可以以任何合理的格式输出。return允许写入文件,控制台,命令行,模式框,函数语句等。 附加规则 输入也可以是空String,您应该为其返回falsey值。 单字符输入字符串应得到真实的结果。 您的程序应区分大小写。helloH应该输出一个falsey值。 您只能有一个Truthy值和一个Falsey值。例如,不允许将false一个输入字符串和0另一个输入字符串输出为Falsey值。 不允许出现标准漏洞。 测试用例 Input -> Output "10h01" Truthy "Nothing" Falsey "Acccca" Falsey "wow!" Falsey "wow" Truthy "H" Truthy "" Falsey 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

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.