Questions tagged «string»

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

5
2014年世界IPv6日
为纪念世界IPv6日的周年纪念日,互联网协会在2014年6月6日发布了一项“关闭IPv4的活动”,为期一天。 IPv6地址可以长格式表示为八个冒号分隔的16位十六进制值。根据地址的不同,它们也可以按照RFC 3513的2.2节的文本文本表示中的第 2项进行缩短: 为了使写入包含零位的地址更容易,可以使用特殊语法来压缩零。“ ::”的使用表示一组或多组16位零。“ ::”在一个地址中只能出现一次。“ ::”还可以用于压缩地址中的前零或后零。 填入这个挑战将是接受无论是在或长或短格式格式化只有一个IPv6地址的程序,并显示在同一个地址都在长,短格式,按照这个顺序。 输入可能来自命令行参数STDIN或任何其他适合您选择语言的输入源。 禁止专门用于解析IPv6地址的库或实用程序(例如inet_ {ntop,pton}())。 如果输入地址无效,则输出将为空(或给出一些指示该地址无效的适当错误消息) 在::发生缩短的情况下,给定地址只能进行一次缩短操作。如果给定地址有多个潜在的缩短操作,则必须使用给出最短总地址的操作。如果在这方面有平局,将使用第一个操作。在下面的示例中对此进行了说明。 避免标准漏洞 例子: Input Output 1080:0:0:0:8:800:200C:417A 1080:0:0:0:8:800:200C:417A 1080::8:800:200C:417A FF01::101 FF01:0:0:0:0:0:0:101 FF01::101 0:0:0:0:0:0:0:1 0:0:0:0:0:0:0:1 ::1 :: 0:0:0:0:0:0:0:0 :: 1:0:0:2:0:0:0:3 1:0:0:2:0:0:0:3 1:0:0:2::3 1:0:0:8:8:0:0:3 1:0:0:8:8:0:0:3 1::8:8:0:0:3 1:2:3:4:5:6:7:8 1:2:3:4:5:6:7:8 1:2:3:4:5:6:7:8 ABCD:1234 <Invalid address format - no output> ABCDE::1234 <Invalid address format …

18
克里斯·派恩(Chris Pine)的“聋奶奶”
我是RubyLearning的导师,我们为学生提供的练习之一是Chris Pine的书“ Learn to Program ”中的“聋奶奶”练习。描述如下: 编写聋人奶奶程序。无论您对奶奶说什么(无论您输入什么),她都应回答:“ Hu!如果您大喊,她会听到您的声音(或者至少她是这么认为的),然后大喊:“不,自1938年以来!” 为了使您的程序真正可信,每次让奶奶大喊一遍。可能是1930年至1950年之间的任意一年。(这部分是可选的,如果您在方法一章的末尾阅读Ruby的随机数生成器这一节,将会更加容易。)喊“再见”。 经过几次课程迭代后,我尝试查看我能得到多小,现在减少到112个字符: puts (s||='').upcase==s ? "NO, NOT SINCE #{1930+rand(21)}!":"HUH?! SPEAK UP, SONNY!" until(s=gets.chomp)=="BYE" 我很想知道用您选择的语言可以实现几个字符,因为我认为Ruby在这里已经做得很好。 编辑:下面发布的Perl解决方案导致 ruby -nle 'puts($_=="BYE"?exit: $_.upcase!? "HUH?! SEPAK UP, SONNY!":"NO, NOT SINCE #{1930+rand(21)}!")' 表达式的长度为92个字符,而nand l选项的长度为2个字符。
22 code-golf  string 

12
真的是加拿大国庆日吗?
7月1日是加拿大日(是加拿大)!还是?看来,今天的Wikipedia页面上有很多与加拿大相关的内容,但是还有哪一天是加拿大的? 您的任务是编写一个程序或函数,该程序或函数以日期(月和日)作为输入,并在输入的日期上返回或输出Wikipedia页面上“加拿大”的提及数目。一些规则: 日期可以以您选择的任何合理格式输入 您的提交必须从url中提取数据en.wikipedia.org/wiki/Month_Day。 仅"Canada"在标题情况下,才必须搜索并计算包含的子字符串。"Canadian"不算,但是"Canada's"算。只要"Canada"字符串中存在确切的,区分大小写的文本,它就是一个匹配项 该页面的内容被视为相应.html文件中的任何内容(即,如果您以a的形式下载.html并在记事本中打开该页面,将会显示什么内容) 结果可以以任何其他合理方式输出到STDOUT,返回或显示 测试用例: July 1 => 34 May 14 => 1 Oct 31 => 2 July 4 => 2 这是代码高尔夫,所以最短的提交者获胜 (作为无奖励的奖金,我很想看看计数最高的那一天是什么)

8
阅读复古展示
从什么地方偷来的艺术品? 可以使用_|字符以ASCII表示7段数字。这是数字0-9: _ _ _ _ _ _ _ _ | | | _| _| |_| |_ |_ | |_| |_| |_| | |_ _| | _| |_| | |_| _| 您的工作是将艺术作品解析为正常数字。 数字注释 每个数字都有不同的宽度。 1 宽度为 1 3而且7很2宽 245689而且0都3宽 每个数字之间还有一个填充字符。这是完整的字符集: // <-应该是一个空格,但是SE格式将其弄乱了 | | ------------- _ _ | | _ …

15
编码约定转换
在那个Coding Golf中,您应该将TitleCase的一种编码约定转换为lower_case_with_underscores。而且...反之亦然! 规格 通过以下方式更改外壳: 如果下划线字符是定界符,则将大小写更改为没有任何定界符的标题大小写。 如果有多个没有分隔符的单词,请将大小写更改为小写并添加下划线字符作为分隔符。 如果只有一个单词(或一个字符):如果单词以小写字母开头,则将大小写更改为“标题大小写”;如果单词以大写字母开头,请将大小写更改为小写。 允许的字符: 从A到Z 从a到z 下划线(_)。 不允许输入大小写混合的单词。不允许的案例示例: Coding_Convention_Conversion a_BC 案例案例 Input | Expected Output =========================================================== CodingConventionConversion | coding_convention_conversion coding_convention_conversion | CodingConventionConversion abc | Abc Abc | abc ABC | a_b_c a_b_c | ABC a | A A | a 规则 它被允许使用ToUpper,ToLower和ToTitleCase功能。 允许使用正则表达式。 代码高尔夫:以字节为单位的最短代码胜出!
22 code-golf  string 

30
弦之塔
给定文本字符串,将其输出为“塔”。 字符串的每个片段(形式为0:n)都重复5*n一次,因此第一个字符重复5次,然后第一个和第二个重复10次,依此类推。 例子: 'hello' -> ['h'] ['h'] ['h'] ['h'] ['h'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', 'l'] ['h', 'e', …

18
得分游戏
背景 在Boggle中,通过将玩家找到的每个唯一单词的得分相加(即,一个以上玩家找到的任何单词的得分为0分),为该回合得分。根据每个单词中字母的数量来计算分数,如下所示: 3个字母:1分 4个字母:1分 5个字母:2分 6个字母:3分 7个字母:5分 8个或更多字母:11分 挑战 在这个挑战中,编写一个程序或函数,该程序或函数接受代表每个玩家单词的字符串列表的列表,并输出玩家分数的列表。您可以假设至少有2位玩家,所有单词均为3个或更多字母,并且全部为小写字母(如果愿意,可以全部为大写字母)。您还可以假设每个玩家只会使用每个单词一次;也就是说,任何玩家的列表都不会包含重复项。这是代码高尔夫球,因此最短答案以字节为单位。 规则 输入可以采用任何合理的格式。示例包括字符串列表,逗号分隔的字符串列表,输入的每一行上的逗号分隔的字符串等。输出可以采用整数列表的形式(或与您的语言相当的形式),也可以打印使用您选择的分隔符(例如换行符)将其输出到stdout的值。 测试用例 输入=>输出 [["cat","dog","bird","elephant"], ["bird","dog","coyote"], ["dog","mouse"]] => [12,3,2] [["abc","def","ghi"], ["ghi","def","abc"]] => [0,0] [["programming","puzzles"], ["code","golf"], []] => [16,2,0]

17
分割标记的标记
挑战 马克是一个学生,他N在一行中以串联的方式获得他的分数。 面临的挑战是将自己的标记分开,知道每个标记只能是0或1或2或3或4或5或6或7或8或9或或10。 输入项 N 自然数和一行。 输出量 一组自然数。 例 N, One line------------------> Set of marks 3, '843'---------------------> [8, 4, 3] 1, '0'-----------------------> [0] 2, '1010'--------------------> [10,10] 3, '1010'--------------------> [1,0,10] or [10,1,0] 4, '1010'--------------------> [1,0,1,0] 9, '23104441070'-------------> [2, 3, 10, 4, 4, 4, 10, 7, 0] 12,'499102102121103'---------> [4, 9, 9, 10, …

16
间隔符号
挑战: 输入: 两个整数参数a和b(其中a<b和至少相差2) 输出: 输出或返回此文本,a并b在其中填写: (a,b) = ]a,b[ = {a<x<b} = {a<x&&x<b} = a+1..b-1 [a,b) = [a,b[ = {a<=x<b} = {a<=x&&x<b} = a..b-1 (a,b] = ]a,b] = {a<x<=b} = {a<x&&x<=b} = a+1..b [a,b] = [a,b] = {a<=x<=b} = {a<=x&&x<=b} = a..b 挑战规则: I / O是灵活的。可以打印到STDOUT,以字符串/字符数组等形式返回。可以以两个整数,十进制数和字符串形式输入(不知道为什么,因为您需要计算a+1and b-1,但是请成为我的客人。),等等。 允许任何数量的前导和/或尾随新行,并且允许每行任何数量的尾随和/或前导空格。 等号(包括在同一列中对齐的空格)是必需的,其他字符之间不允许有空格。 a+1b-1在这些计算之后,将其替换为正确的值。 您不得使用≤代替<=。 …

5
将HTML页面转换成山峰
任务:将HTML页面转换成山峰! 当HTML页面缩进时,它们看起来像: <div> <div> <div> </div> <div> <div> </div> </div> </div> </div> 但老实说,一座山更能代表这种结构。 因此我们可以将其重写为: /\ /\/ \ / \ / \ 左侧和右侧的最外面的斜线对应于外部div-每对HTML标签都应分别代表/开始标签和\结束标签-内部所有标签都“较高”,并具有相同的结构。 输入: 将没有 <!DOCTYPE> 将没有自动关闭标签,例如<img />或<br /> 标签内可能有属性或内容 可能有空格或制表符-您的程序应忽略这些 <或</与标记名称之间将没有空格。 所有输入均为有效HTML 输出 -代表上述标记的山脉。 更多测试用例: 输入: <div id="123"> HI </div><a><span></span></a> 输出: /\ /\/ \ 输入: <body id="<"></body> 输出: /\

30
比较以字符串形式给出的两个数字
我上班有问题。我需要比较来自两个不同数据库的两个数字作为字符串。数字可能带有前导零和/或前导/后跟空格。所以我可能"0001 "来自一个数据库,也可能来自另一个数据库" 1 "。 我用以下代码解决了C#中的问题: Func<string, string, bool> f = (a,b) => int.Parse(a.Trim()) == int.Parse(b.Trim()) 挑战 这是一个非常简单的挑战,适合初学者和任何深奥的语言。给定两个数字作为可能带有前导零和/或前导/后跟空格的字符串,请编写最短的代码来检查两个字符串是否表示相同的数字。 输入必须是两个字符串或您的语言中的等效字符串(char数组可以),它们将始终表示大于零的整数值。 输出必须是代表真值和假值的任何两个一致值。 例子 A B Result ---------------------------- "0001" "1 " true "1450" "1450 " true "0010001 " " 10001 " true "0010000" " 10 " false "101023" "101024" false 这是代码高尔夫球,因此每种语言的最短代码可能会胜出!

27
VEVO用户帐户检查器
我们经常在YouTube上看到音乐视频。许多托管音乐视频的YouTube频道都是“由VEVO提供支持”的。通过将VEVO嵌入到其视频缩略图中并将VEVO附加到其频道名称,可以轻松识别这些内容。 现在,编写一些代码来测试用户给定的字符串是否为VEVO用户帐户。 有效的VEVO用户帐户字符串的要求: 必须仅包含大写,小写和数字字符。(无空格或标点符号) 长度不能超过80个字符。 字符串末尾必须有“ VEVO”子字符串 测试用例: 有效输入: AdeleVEVO ConnieTalbotVEVO SHMVEVO justimberlakeVEVO DJMartinJensenVEVO test123VEVO 输入无效: syam kapuk jypentertainment Noche de Brujas testVEVO123 当然,因为这是code-golf,所以我正在寻找使用任何编程语言的最短代码。

25
解析我的世界语!
世界著名的构造语言世界语使用拉丁字母(有关详细信息,请参见链接的维基百科页面)。但是,有些字符带有重音:characters,ĉ,ĥ,ĵ,ŝ和ŭ。(C抑扬音,g抑扬音,h抑扬音,j抑扬音,s抑扬音和超音。)自然地,这些字符很难键入。即使是这个问题,我也必须在Unicode选择器中搜索字符。因此,已经开发了使用字母“ x”的约定以用于电子用途。例如,“ cxu”用于“ĉu”。(注意:世界语字母通常不使用字母“ x”。” 但是,我是一个语言纯粹主义者!这个“空中报价” *胡说八道杀了我!我需要一个程序来解决此问题,最好尽可能短,以便可以尽快将其输入到我的终端中! 挑战 您的任务是使用x约定获取一串世界语,并将其转换为真实的世界语。 实际上,您必须映射: cx: ĉ gx: ĝ hx: ĥ jx: ĵ sx: ŝ ux: ŭ Cx: Ĉ Gx: Ĝ Hx: Ĥ Jx: Ĵ Sx: Ŝ Ux: Ŭ 所有其他可打印的ASCII字符都应被接受并且不能更改。Unicode会很好,但不是必需的。 输入和输出可以采用适合您的语言的任何格式。祝好运! 测试用例 "input" : "output" _____________ "gxi estas varma" : "ĝi estas varma" "Cxu sxi sxatas …

12
删除不明确的复数!
编程非常严格。您不能告诉程序“输出香蕉计数”,而必须告诉它print(bananas)。 但是,当您这样做时,最终会遇到一个问题:您不知道事先拥有多少个香蕉,因此您不知道是否使用复数。 有时,程序员会走懒惰的路。他们只检查而不是检查there are X banana(s)。 但这很丑陋,因此我们需要一个程序来解决此问题。 方法) 要删除字符串中的歧义复数,请执行以下步骤: 将空格上的字符串分成单词列表。 对于以结尾的每个单词(s),请执行以下操作: 如果前面的字是a,an,1或one,除去(s)在字的结尾。 否则,如果该字是第一个字在字符串中或前述字不是a,an,1或one,替换(s)在与字的末尾s。 将单词列表重新组合成一个字符串,以保留原始空格。 例子) 让我们来一个字符串there's a banana(s) and three apple(s)。 首先,我们将字符串分成单词列表: ["there's", "a", "banana(s)", "and", "three", "apple(s)"] 第二步,我们使用两个以(s):banana(s)和结尾的单词apple(s)。 之前的单词banana(s)是a,因此我们删除了(s)它banana。这个词之前apple(s)是three的,所以我们改(s)到s,因此变得apples。 我们现在有["there's", "a", "banana", "and", "three", "apples"]。将列表重新加入,我们得到there's a banana and three apples。这是我们的最终结果。 挑战 创建一个程序或函数,该程序或函数采用任意合理格式的模糊字符串,并返回该字符串的明确版本。 您可以假定该字符串不包含任何换行符,制表符或回车符。 我忘了指定是否对空间或空间(即,是否组织分裂了okay then两个空格应该是["okay", "then"]或["okay", "", "then"]张贴的挑战时,那么你可以假设分裂两种形式)。 测试用例) …
21 code-golf  string 

12
让我们做Diet Haskell
Haskell有可以写成的元组 (a,b,c) 但这只是语法糖 (,,)a b c 在一般的Ñ元组可以与形成n-1个 , S之间(... )接着它的元素用空格分开。例如7元组(1,2,3,4,5,6,7)可以由 (,,,,,,)1 2 3 4 5 6 7 由于Haskell没有1元组,因此无法形成它们。您也不会对空元组负责。 嵌套元组可以使用括号来覆盖操作顺序。 ((1,2),3) == (,)((,)1 2)3 作为我们从Haskell删除所有语法糖的追求的一部分, 我要请您编写一个程序,从Haskell的元组中删除语法糖。 您的程序应采用一个元组,一个数组或一个表示含糖元组的字符串,并应输出一个表示“无糖”元组的字符串。输入元组将只包含正整数或其他元组。 由于我们在这里打高尔夫球,您的输出应该很短。它不应包含不必要的内容 空格。空格仅应用于分隔元组函数的参数,并且不应出现在a )或a之后( 括号。仅在形成元组函数或嵌套元组时才应使用括号。 这是一个代码问题,因此答案将以字节计分,而字节数越少越好。 测试用例 (1,2) -> (,)1 2 (1,2,3) -> (,,)1 2 3 ((1,2),3) -> (,)((,)1 2)3 (1,2,3,4) -> (,,,)1 2 3 …

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.