Questions tagged «string»

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

11
二叉树分形
今天的挑战是像这样的示例一样绘制一幅美丽的ascii艺术的二叉树: /\ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ /\ /\ / \ / \ / \ / \ / \ / \ / \ / \ …

20
绘制ASCII风险
涉及使用星号绘制形状的问题很多,因此我认为,由于存在许多星号,我们应该使用ASCII表绘制一个。 挑战 您的任务是编写一个无需输入的程序或函数,并输出以下确切文本: ! "# $% &' () *+ ,- ./ 01 23456789:;<=>?@ABCDEF GHIJKLMNOPQRSTUVWXYZ[ \]^_ `a bc de fg hi jk lm no pq rs tu vw xy z{ |} ~ 作为参考,该站点列出了完整的ASCII表。 规则 输出应该是准确的文本,如上所示。允许前导/尾随空格。 适用标准高尔夫球漏洞-无需从互联网等读取此ASCII风险。 这是代码高尔夫球,因此最短的解决方案(以字节为单位)获胜。

15
字符串上的线性回归
给定一个字符串,这个挑战有些棘手,但相当简单s: meta.codegolf.stackexchange.com 使用字符串中字符的位置作为x坐标,并使用ascii值作为y坐标。对于上述字符串,所得的一组坐标为: 0, 109 1, 101 2, 116 3, 97 4, 46 5, 99 6, 111 7, 100 8, 101 9, 103 10,111 11,108 12,102 13,46 14,115 15,116 16,97 17,99 18,107 19,101 20,120 21,99 22,104 23,97 24,110 25,103 26,101 27,46 28,99 29,111 30,109 接下来,您必须计算使用线性回归获得的集合的斜率和y截距,这是上面绘制的集合: 这导致最佳拟合线为(0索引): y = 0.014516129032258x + …
25 code-golf  string  math 

21
转换“ 0xUsernames”
0x用户名 有太多人在使用消息传递服务,以至于他们用光了存储所有用户名的空间!为了解决这个问题,他们将在可能的情况下开始以十六进制存储用户名。 如果用户名仅包含字符0123456789ABCDEF(不区分大小写),则可以将其转换为十六进制并存储为整数。例如,用户名ba5eba11可以解释为0xBA5EBA11十六进制整数。 但是呢05AB1E?那是一个前导零,它将丢失。因此,无论何时转换用户名,都必须1在将其读取为整数之前确保在前面加上a 。 挑战 您的任务是编写一个给定非空用户名作为字符串的程序或函数,以“六压缩”用户名: 如果可以将其解释为十六进制整数,则将1解释为十六进制,然后将结果打印为以10为基数。 否则,只需返回未修改的字符串即可。 这是代码高尔夫球,因此最短的解决方案(以字节为单位)获胜!允许内置的基本转换功能。 测试用例 您可以假设任何所得的整数都在您语言的标准整数范围内。 与大多数邮件系统中的用户名一样,输入字符串将仅包含字母数字和下划线。 请记住,您始终需要1在转换前添加前导! "ba5eba11" -> 7421737489 "05AB1E" -> 17148702 "dec0de" -> 31375582 "Beef" -> 114415 "da7aba5e" -> 7960443486 "500" -> 5376 "DENNIS" -> "DENNIS" "Garth" -> "Garth" "A_B_C" -> "A_B_C" "0x000" -> "0x000" 作为参考,这是我用于测试用例(无溶剂)的Python 3实现: import re def convert_name(name): …

9
赞美Puzles和Colf:压缩字符串
花了一些时间在这个网站上,我开始享受尽可能短的事情。这可能就是为什么我最近被包含多个相同字符的字符串冒犯的原因。您的工作是编写根据以下规则压缩给定字符串的函数或程序: 从0压缩开始,即寻找相同字符的第一对(最左边),中间还有0个其他字符。如果找到了这样的一对,请删除两个字符之一,然后通过执行另一个0压缩来重新启动算法。如果找不到这样的对,请继续下一步。示例: programming-C0-> programing aabbcc-C0-> abbcc test-C0->test 然后执行1压缩,即寻找第一对相同的字符,它们之间还有1个其他字符。如果找到了这样的一对,请删除其中的一个以及它们之间的所有字符,然后以0缩进重新开始。如果找不到这样的对,请继续下一步。示例: abacac-C1-> acac java-C1->ja 继续进行2-缩合,依此类推,直到n缩合,其中n为原始字符串的长度,每次在缩合除去一些字母后重新启动。示例: programing-C2-> praming abcdafg-C3->afg 生成的字符串称为压缩字符串,每个字符串最多包含一次。 输入: 可打印的ascii字符的小写字符串。 输出: 所述冷凝根据上述规则的字符串。 例子: examples -> es programming -> praming puzzles -> puzles codegolf -> colf andromeda -> a abcbaccbabcb -> acb if(x==1):x++ -> if(x+ fnabnfun -> fun abcdefae -> abcde 详细示例以阐明算法的工作原理: fnabnfun …
25 code-golf  string 

30
现在是时候挑战时钟了!
我希望您为我制造一个时钟,以这种格式显示时间: 18 ---------- 19 -------------------------------------------------- 这将显示“ 18:10”。当前小时和下一个小时显示在该行的前面,后跟一个空格和一些破折号:在第一行中,该小时中经过的分钟数,第二行显示了还有多少分钟在这个小时内去。 澄清 时钟应显示系统时间。如果从其他来源获取时间更方便,那也很好。它可能不作为输入提供。 在18:00,最上面的行是18(允许但不要求尾随空格) 在18:59的底线是19 - <10小时可以用0(01 -----)或右对齐( 1 -----)预先填充。即使破折号从正确的位置开始(1 -----无效),也不允许左对齐的一位数字。 时钟应以24h格式显示小时。 尽管它被称为24h格式,但实际上没有24。在第23小时内,第二行以00或开头 0。 显示至少需要每分钟更新一次,但这不必在精确的00几秒钟内进行。如果方便的话,您可以更频繁地/连续地进行更新,但是结果当然仍然必须清晰可辨-屏幕上不会出现任何拖尾现象。 输入项 没有。 输出量 如上所述。两行都允许使用尾随空格将时钟填充到60位置,还允许尾随换行符。 在显示下一分钟时,需要清除屏幕:使用清除屏幕命令或添加不少于30个换行符。 附加规则 禁止出现标准漏洞 代码高尔夫,最短答案(以字节为单位)获胜。

14
破碎的凯普斯基凯·菲亚斯科
您的一些员工的Capslock键已损坏,而您更换它们太便宜了。通过创建最短的程序来纠正他们的工作来帮助他们!只需将给定字符串中的每个字符从大写字母转换为小写字母,反之亦然...但这是有误的! 您也对圣诞节感到非常兴奋!因此,您将留下一个微小的“错误”,该错误无法纠正Christmas(不区分大小写)序列中的字母。 输入项 对于输入,您将使用一个单个字符串(或字节数组),其中可能包含0x20和0x7e(- ~)之间的换行符和ascii 。您无需担心回车符或字符串中是否包含其他任何字符。 输出量 输出应仅包含提供的字符串,并且将大写和小写字符互换(当然还有圣诞节错误!)。它最多可以包含一个额外的尾随空白。 圣诞虫 让我们用一个例子来解释一下: Input: i CAN HARDLY WORK LIKE THIS please GET ME A NEW KEYBOARD FOR cHRISTMAS Output: I Can HaRdly work lIke thiS PLEASE geT Me A new keyboard for ChriStmas can包含“ c”,这是圣诞节的首个字母,因此不会更改。in中的下一个字母Christmas是“ h”,它在in中hardly(也包含“ r”),因此不会更改,依此类推。Christmas本身只有一个字母不变,因为到代码到达那里时,它实际上正在寻找“ s”,而不是“ c”。 一旦找到序列,它应该从“ c”重新开始,并再次开始迭代Christmas。因此ChristmasChristmas将保持不变。 测试用例 Input: …
25 code-golf  string 

22
PKCS#7填充验证
在密码术中,PKCS#7填充是一种填充方案,它添加了字节数N≥1,其中每个添加字节的值等于N。 例如,Hello, World!具有13个字节的,以十六进制表示如下: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 如果我们选择将PKCS#7填充长度为16,则结果为: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 03 03 03 如果我们选择填充长度为20,则结果为: 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 07 07 07 …

1
域名评估
域名交易是一项大生意。自动评估工具是域名交易中最有用的工具之一,因此您可以轻松估算给定域名的价值。不幸的是,许多自动评估服务要求使用会员资格/订阅。在此挑战中,您将编写一个简单的评估工具,可以大致估算.com域的值。 输入输出 作为输入,您的程序应采用域名列表,每行一个。每个域名都将与正则表达式匹配^[a-z0-9][a-z0-9-]*[a-z0-9]$,这意味着它由小写字母,数字和连字符组成。每个域的长度至少为两个字符,并且都不能以连字符开头或结尾。在.com从每个域被省略,因为它是隐含的。 作为输入的另一种形式,只要指定所需的字符到整数的转换,就可以选择将域名接受为整数数组而不是字符串。 您的程序应输出一个整数列表,每行一个,它给出了相应域的评估价格。 互联网和其他文件 只要您提供这些文件作为答案的一部分,您的程序就可以访问其他文件。您的程序也被允许访问字典文件(无需提供有效单词的列表)。 (编辑)我已决定扩展此挑战,以允许您的程序访问Internet。有两个限制,即您的程序无法查询任何域的价格(或价格历史记录),并且它仅使用预先存在的服务(后者掩盖了某些漏洞)。 总大小的唯一限制是SE施加的答案大小限制。 输入示例 这些是一些最近出售的域。免责声明:尽管这些站点似乎都没有恶意,但我不知道是谁控制了它们,因此建议不要访问它们。 6d3 buyspydrones arcader counselar ubme 7483688 buy-bikes learningmusicproduction 示例输出 这些数字是真实的。 635 31 2000 1 2001 5 160 1 计分 计分将基于“对数差异”。例如,如果某个域名的售价为300美元,而您的程序将其评估为500美元,则该域名的分数为abs(ln(500)-ln(300))= 0.5108。任何域的价格都不会低于1美元。您的总体分数是该组域名的平均分数,分数越低越好。 为了弄清楚您应该得到的分数,只需猜测36以下训练数据的常数即可得出大约的分数1.6883。成功的算法得分低于此分数。 我选择使用对数,因为这些值跨越几个数量级,并且数据将充满异常值。使用绝对差异而不是差异平方将有助于减少评分中异常值的影响。(另外,请注意,我使用的是自然对数,而不是以2为底或以10为底。) 数据源 我已经从域名拍卖网站Flippa上浏览了最近出售的1400多个.com域名列表。该数据将构成训练数据集。提交期结束后,我将等待另外一个月的时间来创建测试数据集,并对提交的数据进行评分。我可能还会选择从其他来源收集数据,以增加训练/测试集的大小。 培训数据可在以下要点获得。(免责声明:尽管我使用了一些简单的过滤方法来删除了一些公然的NSFW域,但该列表中仍可能包含一些域。此外,我建议不要访问您不认识的任何域。)右侧的数字是真实的价格。 https://gist.github.com/PhiNotPi/46ca47247fe85f82767c82c820d730b5 这是训练数据集的价格分布图。x轴是价格的自然对数,y轴是计数。每个条的宽度为0.5。左侧的峰值分别对应$ 1和$ 6,因为来源网站要求出价至少增加$ 5。测试数据的分布可能略有不同。 这是条形图宽度为0.2的同一图形的链接。在该图中,您可以看到峰值分别为11美元和16美元。

17
ASCII大金字塔
介绍 公元前2600年,人们正在建造金字塔。他们已经成为金字塔的基础,但不知道如何继续。因此,他们打电话给您寻求帮助。 建造金字塔的规则非常简单。对于上一层以上的层,您需要做的就是遵循此分步指南: 切掉上一层的边缘。 在/角色上方,必须有一个\角色,反之亦然。这适用于除边缘以外的每个字符。 最左边的字符始终是a /,最右边的字符始终是\。 让我们以金字塔的基础为例: //\/\/\\ 我们切掉边缘,留下: /\/\/\ 我们将正斜杠更改为反斜杠,反之亦然: \/\/\/ 最左边的字符始终是a /,最右边的字符始终是a \,因此我们将其更改为: //\/\\ 我们将此层放在上一层: //\/\\ //\/\/\\ 我们继续进行操作,直到到达顶部(看起来像/\)。因此,最终我们得到: /\ //\\ //\/\\ //\/\/\\ 这是您需要输出的。 任务 给定金字塔的基础(长度大于3),输出整个金字塔。您可以放心地假设最左边的字符是/,最右边的字符是\。您还可以假设基础的长度始终是偶数。允许使用尾随空格。只要金字塔保持原位,也可以使用前导空间。允许使用1个尾随和1个前导换行符。 测试用例 Input: /\\\ Output: /\ /\\\ Input: //\\///\/\ Output: /\ /\\\ /\///\ ///\\\/\ //\\///\/\ Input: /////////////\ Output: /\ /\\\ /////\ /\\\\\\\ /////////\ …

28
#Hashtag_or_not
在此代码高尔夫挑战赛中,您将验证标签! #What_your_code_should_do 输入是一个字符串。如果它是有效的标签,则输出一个真实值,否则输出一个虚假值。 如果...,我们将字符串定义为有效的标签。 它以井号(#)开头。 井号后面没有数字(例如#2016USElection,不是有效的井号)。 它没有任何“特殊字符”(即,不是字母,下划线(_)或数字的任何字符)。 您可以假定输入仅包含ASCII字符。(如果我们也执行Unicode,那将是不公平的。) #规则 基本的代码高尔夫球规则适用。 #例子 真相: # #e #_ABC #thisisanunexpectedlylongstringxoxoxoxo #USElection2016 虚假: Hello, World! #12thBday #not-valid #alsoNotValid! #!not_a_hash

23
哪些鬼不见了?
在此挑战中,给定吃豆人的鬼魂列表,您必须输出缺少的鬼魂。您必须尽可能地减少字节数 输入项 输入将由字符串或列表组成,其中将包含数字重影,可能包括; 眨眼 墨黑 小指 克莱德 但是,输入也可能包括吃豆人(带有标点符号)。因此,列表中的最大项目数将为五个,以任何顺序排列。可以假设列表中没有无效项 输出量 输出将包含一个字符串或列表。这将以任何顺序包括所有不在输入中的幻影。但是,如果输入中包含吃豆人,则所有鬼影都将被视为丢失(因为他吃掉了它们)。 测试用例 input: Clyde output: Blinky, Inky, Pinky alternate output: Inky, Pinky, Blinky or one of the other 4 permutations input: Clyde, Blinky # or however you delimit it output: Inky, Pinky alt: Pinky, Inky input: Pac-Man, Clyde Output: Blinky, Inky, …
25 code-golf  string 

30
生成堆栈交换图标
您认识PPCG徽标吗?当您对其进行ascii艺术处理时,它看起来像这样。 +---+ |PCG| +---+ v 现在,在此Code Golf中,您将创建一个代码,该代码为其他站点制作徽标,类似于PPCG徽标。 你应该做什么 字符串“ Shortened”将是字符串,输入字符串中包含所有大写字母和数字。(PPCG当输入字符串为时Programming Puzzles & Code Golf) “盒子”( +---+ | | +---+ v )应该完全适合缩短的字符串。 同样,该v部分应该正好是1向下,左1是右下+。 然后输出其中包含缩短的字符串的框。 例 Stack Overflow: +--+ |SO| +--+ v Area 51: +---+ |A51| +---+ v 规则 您可以假定输入至少包含一个数字或大写字母。 适用标准代码高尔夫球规则。

22
查找每个字母开头的第一个单词
给定一个字符串,找到每个字母开头的第一个单词(不区分大小写)。 样品 使用Ferulas flourish in gorgeous gardens.的输入: "Ferulas flourish in gorgeous gardens." ^^^^^^^ ^^ ^^^^^^^^ | | | | | --> is the first word starting with `g` | --> is the first word starting with `i` --> is the first word starting with `f` 然后,此样本的输出应该是匹配的单词,并用一个空格隔开: "Ferulas in gorgeous" 挑战 …
25 code-golf  string 

3
xu ti te gismytermorna?(这是有效的gismu吗?)
(从字面上看:“这是否遵循/实现了gismu -form?”) 前提 Lojban语言是一种构造语言,部分意味着其所有单词都是被创造的,而不是自然发展的。Lojban的语义基础是其gismu或词根词,它们是通过组合来自广泛使用的自然语言(如中文,印地语和英语)的词根而合成的。所有gismu的长度均为5个字母,并遵循一定的严格格式。 信息 就我们的目的而言,罗伊班字母是: abcdefgijklmnoprstuvxz 也就是说,罗马字母不带hqwy。 该字母可以分为四类: 元音 aeiou 辅音辅音 lmnr 清音辅音ptkfcsx。发出声音时,它们分别成为... 浊辅音bdgvjz(没有对应的浊辅音x。) 要成为有效的gismu,长度为5个字符的字符串必须: 在子音元音模式CVCCV或中CCVCV,其中C表示辅音,V表示元音。 遵循辅音匹配规则。 CCVCV单词的辅音匹配规则: 前两个字符必须构成以下48个对之一(源): ml mr pl pr bl br tr tc ts dr dj dz kl kr gl gr fl fr vl vr cl cr cm cn cp ct ck cf jm jb …

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.