Questions tagged «string»

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

14
准备多项选择测试
介绍 注意:这不是鼓励作弊的方法。正如C'O'Bʀɪᴇɴ所说的那样,学习是通过测试的最佳解决方案:3。 考虑对多项选择测试的以下答案: ABCBCAAB 下表说明了答案是否匹配: A B C B C A A B A 1 0 0 0 0 1 1 0 B 0 1 0 1 0 0 0 1 C 0 0 1 0 1 0 0 0 这给了我们以下数字: 10000110, 01010001, 00101000 挑战是打印这些二进制数字。但是,重要的是要查看在选择题测试中使用了哪些字母。例如: ABCDCDBCDABC 这个最高字母是字母表中D的第4个字母。因此,我们需要输出4个不同的二进制数。即: 100000000100, 010000100010, 001010010001, …

1
是否有变相括号?
有人给了我们一个字符串,但所有类似方括号的字符都已更改为普通字符,我们不知道是哪一个,甚至不知道有多少个。我们所知道的是,如果L1,L2,L3,...,LN是不同种类的左括号和R1,R2,R3,...,RN不同种类的相应右括号,它们都是不同的(2N个不同的括号字符),则字符串是有效的,前提是它是其中的一个(+是普通字符串串联): L1+X+R1,,L2+X+R2...,,LN+X+RN哪里X是有效的字符串, X+Y,其中X和Y是有效字符串, 不是方括号字符的任何单个字符。 空字符串 我们知道,在更改括号之前,它们以有效的字符串开头,并且没有将其更改为字符串中已经存在的任何字符。每个支架也至少存在一对。您可以重构哪些字符最初是左括号和右括号对(找到Li和Ri遵循给定条件)? 输出括号内的字符对。例如,如果(){}[]实际上是方括号字符,则可能输出(){}[]或{}[]()或[](){}等。对于字符串,可能有多种方式执行此操作,您只需要返回一个,这样就不会有带有更多对的方括号分配(请参见示例)。请注意,输出字符串应始终具有偶数长度。 例子: abcc- c不能为方括号,因为没有其他字符出现两次,但ab可以为方括号对,因此您将精确输出ab。 fffff -任何最多包含一个字符的字符串都不能带有方括号,因此您将返回空字符串或不输出任何内容。 aedbedebdcecdec -该字符串不能有任何括号,因为有1 a,2 bs,3 cs,4 ds和5 es,因此两个字符不会出现相同的次数,这是必须有括号的。 abcd-可能的分配是ab,cd,abcd,cdab,adbc,bcad,ac,ad,bc和bd,(以及空分配,其中所有的人都有),但你必须返回最长的任务之一,所以你必须返回abcd,cdab,adbc,或bcad。 aabbcc,abc-这些都有ab,ac和bc为有效对。您必须返回这些对中的一个,无论哪一个都没有关系。 abbac-a和b具有相同的字符数,但是它们实际上不能工作,因为其中一个出现在所有其他出现的左侧和右侧。什么也没返回。 aabcdb- cd和ab是精确的两个括号对,因此输出cdab或abcd。 abcdacbd-只有一对可以立即实现,但是ab,ac,bd,cd,和ad都可能对你可以退货。无论选择哪个对,都有一个实例,其中有一个其他字符,它禁止任何其他对,除非是的情况下ad,其中的其他对bc和cb也不能单独出现,因此不可能与ad。 这是代码高尔夫,因此以字节为单位的最短代码获胜。如果可能的话,来自STDIN的输入。如果不可能,请在答案中指出输入法。

5
实施网址缩短器
网址太长。因此,您必须实现一种缩短URL的算法。 一世。URL的结构 URL有两个主要部分:域和路径。域是第一个斜杠之前的URL的一部分。您可以假定URL不包含协议。道路就是一切。 ii。领域 URL的域将类似于:xkcd.com meta.codegolf.stackexcchhannnge.cooom。每个部分都是按周期分隔的,例如在中blag.xkcd.com,这些部分是“ blag”,“ xkcd”和“ com”。这是您将要执行的操作: 如果它包含两个以上的部分,则将最后两部分放在一边,并连接其余部分的第一个字母。 然后,将其连接到第一个字母到倒数第二个字母。 添加句号以及倒数第二部分的第二个和第三个字母。 丢弃最后一部分。 iii。路径 路径将类似于:/questions/2140/ /1407/。和以前一样,“部分”由斜杠分隔。对于路径中的每个部分,请执行以下操作: 加上斜线 如果它完全由十进制数字组成,则将其解释为数字并转换为36进制整数。 否则,添加零件的第一个字母。 最后,添加一个斜线。 iv。杂项 这是代码高尔夫球,因此最短的代码获胜。 路径可以为空,但URL始终以斜杠结尾。 不会有一个协议(例如http://,file:///) 域中永远不会少于两个部分。 有标准漏洞。 例子 进:xkcd.com/72/ 出:x.kc/20/ 进:math.stackexchange.com/a/2231/ 出:ms.ta/a/1pz/ 进:hello.org/somecoolcodeintrepreteriijjkk?code=3g3fzsdg32,g2/ 出:h.el/s/

4
平滑vs.矮胖vs.断花体
基于块状vs.平滑字符串。 /\_/\/\__/\/\/\/\_/\_/\当您真的很无聊时,在键盘上制作花粉很有趣。但是,并非所有的花鼓都是一样的。有些花鼓是光滑的,例如\___/,而有些是矮胖的,例如/\/\/\/\。其他人则完全崩溃,例如////_\\\ 在每个N字形字符中,都有字形N-1连接点。每个弯头连接点分为以下三种类型之一: 平滑(角度>“ 90度”): \_ __ _/ 矮胖(角度=“ 90度”) /\ \/ 坏了(没有连接的任何东西) // \\ /_ _\ 让我们来定义的平滑度是那些光滑,结的比例chunkiness和破碎类似定义。每个值的范围在0和之间1。花样的光滑度,粗大度和断裂度之和始终等于1。 例如,该花体/\/\\_//\_具有3个平滑结,4个块状结和2个折断结。因此0.3333,它是光滑,0.4444厚实和0.2222破碎的。 空字符串和只有一个字符的字符串具有未定义的值,所有输入的长度至少为2个字符。 挑战 编写一个程序,接受任意长度的花样,并输出其平滑度,块度和破损值中的任意两个。 您可以编写程序或函数,并通过STDIN,命令行或字符串参数输入。 您可以假定输入的长度至少为> = 2,并且仅由/\_带有可选尾随换行符的字符组成。 打印(或返回一个函数)两个浮点数的精度至少为四舍五入,四舍五入或截断。如果真实值为2/3,可接受的值包括0.6666和之间的任何值0.6667,甚至是诸如0.666637104。如果确切值为1/3,则任何包含的答案0.3333都是有效的。如果值小于1,则可以省略尾随零,也可以省略前导零。 根据需要输出三个值中的任意一对,只需确保说明两个值和顺序。 以字节为单位的最短代码获胜。 例子 /\/\\/\//\\→平滑0,Chunkiness 0.7,残破0.3 _/\\_/\\/__/\\\//_→平滑0.29411764705,Chunkiness 0.29411764705,残破0.41176470588 //\\__/_\/→平滑0.3333333,Chunkiness 0.2222222,残破0.4444444 奖励问题:您更喜欢哪个,平滑的,粗大的或折断的花形?

3
重新造句
这一挑战包括两个部分。获胜者将是总字节数最少的解决方案。两种挑战都必须使用相同的语言。 第1部分: 编写一个函数或程序,该函数或程序将仅包含有效词的句子作为输入,并输出所用字符的列表,每个字母的使用次数以及原始句子中每个词的字母数。该程序的输出必须是对下一个程序的有效输入(与输出一样) 我将在后面添加示例和详细规则。 第2部分: 编写一个函数或程序,将第一个程序的输出作为输入,并使用此英语单词列表,并使用来自输出的信息重新创建一个句子。该句子不必与原始句子相同。 更多信息。规则和限制: 第1部分: 第一个输入可以是任何合适的格式,带或不带引号,作为函数参数或来自STDIN,带或不带括号等。 输入的句子将不包含任何标点符号或特殊字符,但最后一个句点/点除外。除句点符号外,输入中的所有字符都将在单词列表中。 句子的第一个字母为大写,其余字母为小写。 第2部分的输出必须以与原始句子相同的大写字母开头(因此不建议将输入转换为小写(但可以)。 输出可以是任何合适的格式: 必须可以将输出直接复制粘贴到下一个程序/函数中 粘贴粘贴时不能进行任何更改,必须将整个输出整体复制并粘贴,而不是部分粘贴。 例如,您可以输出字母表中所有字母的直方图,或仅输出所使用字母的直方图(通常,完成第二部分所需的一切) 您无法输出重复出现多次的字符列表。例如,The queue不能产生output:,Teeehquu (3,5)它应该类似于:Tehqu, (1 3 1 1 2),(3 5)。 第2部分: 程序/函数必须完全像第1部分一样接受输入(一个例外,请参阅以下有关将文件名作为输入的注释。) 如果必须使用方括号,引号或类似内容来解析输入,则这些必须是第1部分输出的一部分。 单词列表可以在这里找到。 单词列表可以在本地另存为w.txt,也可以从url中获取。该网址仅计为5个字节,因此您不需要网址缩短器。 如果程序无法打开文件,而不必读取名称从标准输入的输入(我相信这就是是为Pyth至少的情况下),然后将文件名可以作为一个独立的输入参数。 输出必须仅是一个句子(有效单词列表),以句点和可选的换行符结尾。 输出中的单词数必须与第1部分中原始句子的字母数相同(顺序正确) 原始句子中使用的所有字母都必须在新输出中使用。 句子必须以与原始输入句子相同的大写字母开头,并以句点结尾。 两个部分: 这两个部分的执行时间都不会超过2分钟(随机选择单词,直到无法解决为止)。 使用上面列出的规则,应该有很大的机会复制完全相同的句子,但这不是必须的。 例子: 在以下示例中,显示了一些不同的输入和输出格式。接受更多。 第1部分: 输入: Zulus win. 输出类型1: Z i l n s …

3
萝卜。所以。许多。萝卜
该死的,那是很多胡萝卜。 灵感来源 任务 您必须创建一个程序,以尽可能多的语言,将每个实例替换^为markdown格式的链接(这意味着如果我将其发布在答案中,它将自动将其读取为图像并将其放置在图像中的的话)这种朝上的胡萝卜。 如何使用上述格式: 首先,在文件中的任何位置,像这样放置链接(这是我针对此问题所做的操作): [1]:http://i.stack.imgur.com/mecHl.png 然后,无论您在哪里想要它: [![] [1]] [1] 规则 适用标准漏洞。 输入将通过STDIN或等效输入。 输出将通过STDOUT或等效输出。 您的代码必须是您使用的所有语言的完全可运行的程序。 你用你的胡萝卜的URL并没有必须是一个在这个答案。这只是一个例子。您可以使用任何 URL,只要SE的Markdown可以显示该特定的胡萝卜。 这是一个多语言的挑战,因此使用最多的胡萝卜语言的答案会成功! 如果是平局,则以语言数量最多的条目的最短代码大小为准。 编辑: 另外,请勿使用琐碎的语言衍生词!这意味着使用替代语言(Brainfuck与ShadyAsFuck)和不同的语言版本(Python 2与Python 3)。 有很多适合的琐碎小东西(包括9001 BF变体) 别那样 注意:是的,在支持正则表达式的语言中,该程序将显得微不足道。但是,竞争是看竞争对手可以使用几种语言。

1
旋转螺旋
给定一个代表字符螺旋的文本正方形,旋转它! 螺旋从中心开始,并逆时针移动到外边缘,从中心左侧开始: 987 216 345 这将转换为字符串123456789。轮换做向左,所以如果你转动它一个位置,这将是234567891。这表示为: 198 327 456 输入值 输入由螺旋线和旋转距离组成。 距离将始终为正整数或零,并且可以以您的语言的数据类型限制为上限。 螺旋线应视为一个字符串,并带有您选择的行定界符(不包括定界符)。它始终是一个正方形,不包括定界符,并且边长为奇数。 假设所有字符都是字母数字[A-Za-z0-9]。 输出量 输出是旋转的螺旋。它应该是多行的正方形(无论是打印还是退回)。 例子 输入值 3 tne atd bin 输出量 bat nit den 输入值 18 efilr naepo umshf tootr butte 输出量 rettu omseb oofft trliu hpean 这是代码高尔夫,分数照常以字节为单位。
12 code-golf  string 

30
从字符串中删除重复的单词
从输入的句子中删除所有重复的单词。 输入将类似于cat dog cat dog bird dog Snake snake Snake,输出应为cat dog bird Snake snake。始终会有单个空格分隔单词。 输出顺序必须与输入相同。(请参阅示例) 您不需要处理标点符号,但需要处理大写字母。
12 code-golf  string 

30
签署这个词!
什么是单词签名? 一个字的签名是它的所有的信件整理-的签名this,hist并且hits都hist。 挑战 编写程序时,程序应要求输入,然后打印出该单词的签名。因此,示例程序运行可能如下所示: Give me a string: this The signature signature of 'this' is hist. 不需要任何交互,只要它接受输入并打印签名,就可以。 计分 字节数最小的程序获胜! 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为了确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,可以将旧分数保留在标题中,方法是将它们打掉。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 显示代码段 var QUESTION_ID=54945;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),e.has_more?getAnswers():process()}})}function shouldHaveHeading(e){var a=!1,r=e.body_markdown.split("\n");try{a|=/^#/.test(e.body_markdown),a|=["-","="].indexOf(r[1][0])>-1,a&=LANGUAGE_REG.test(e.body_markdown)}catch(n){}return a}function shouldHaveScore(e){var a=!1;try{a|=SIZE_REG.test(e.body_markdown.split("\n")[0])}catch(r){}return a}function getAuthorName(e){return e.owner.display_name}function process(){answers=answers.filter(shouldHaveScore).filter(shouldHaveHeading),answers.sort(function(e,a){var r=+(e.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0],n=+(a.body_markdown.split("\n")[0].match(SIZE_REG)||[1/0])[0];return r-n});var …

1
有效迷宫数
给定一个WxH网格,有多少种可能的迷宫? 您对迷宫的了解: 网格正好是H正方形,W正方形是正方形。 共有三种类型的正方形:“开始”,“完成”和“空”。迷宫必须正好包含1个开始点和1个结束点,所有剩余的方块均为空。 整个迷宫周围都有墙壁。 除非违反以下规则,否则墙可以存在于任意两个正方形之间的边缘上: 从开始方块到完成方块必须存在一条路径。 因此,给定两个数字W和H,您必须返回一个数字,代表可能的正方形/墙壁配置的数目。您保证W*H > 1 例如,2x2迷宫具有完全100不同的可能配置。 这是一个代码高尔夫球,所以最短的答案是成功的!

16
转换字符串中的字符
在此挑战中,您需要将输入字符串中的字符移位n次并输出移位后的字符串 输入值 输入将首先包含一个字符串。在下一行中,将显示一个整数,它表示n。 输出量 如果n为正,则将字符串中的字符移至正确的n时间。 如果n为负,则将字符串中的字符向左移动n一次。 如果n为零,请不要移动字符串中的字符。 移位后(n零时除外),打印移位后的字符串。 笔记 该字符串将不会为空或null。 该字符串不得超过100个字符,并且只能包含(空格)至~(波浪号)范围内的ASCII字符(字符代码0x20至0x7E(包括0x20至0x7E))。请参阅ASCII表以获取参考。 该转变是周期性的。 该数字n可以是正数,负数或零。 n 始终大于或等于-1000且小于或等于1000 您可以通过stdin命令行参数或通过命令行参数进行输入 移位后的字符串必须以stdout(或最接近的等价形式)输出 您可以编写一个完整的程序或一个函数,该函数或函数接受输入并以stdout与最接近的等效字符串输出 测试用例 1) Hello world! 5 -->orld!Hello w 2) Testing... -3 -->ting...Tes 3) ~~~ 1000 -->~~~ 4) 12345 0 -->12345 5) ABA 17 -->BAA 计分 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。
12 code-golf  string 

3
这个词是女性还是男性?
写一个程序或函数,它在一个字符串只包含小写字母AZ,并打印或返回truthy值,如果这个词是女性的它所代表的事物和版本falsy值,如果它是阳刚的版本。例如,hen是鸡肉的女性版本和rooster男性的版本,因此hen可能会产生1并rooster可能产生0。 对于所有反映性别的英语单词这样做当然太笨拙了。您的程序/功能仅需要支持20对男性/女性对。以下是按主题分类的五组,每组10对男性/女性。选择其中两个集合;这两组中的20对总数是您的程序/功能必须使用的40个单词。 (格式为masculine_version feminine_version) 一般 he she him her man woman boy girl male female masculine feminine guy gal lad lass mister miss sir madam 家族式 father mother dad mom pa ma son daughter brother sister husband wife grandfather grandmother grandpa grandma uncle aunt nephew niece 动物 lion lioness rooster …

29
从字符串中剥离多余的空格
给您一个字符串。输出每个单词一个空格的字符串。 挑战 输入将是一个字符串(不null或空),用引号(包围")经由发送stdin。删除其中的前导和尾随空格。此外,如果两个单词(或符号或其他符号)之间有一个以上的空格,请将其修剪为一个空格。输出带引号的修改后的字符串。 规则 字符串的长度不能超过100个字符,并且只能包含(空格)到~(波浪号)(字符代码0x20到0x7E,包括两端)范围内的ASCII字符",即,该字符串将不包含引号(")和其他字符。上面指定的范围。请参阅ASCII表以获取参考。 您必须从stdin(或最接近的替代方法)获取输入。 输出必须包含quotes(")。 您可以编写一个完整的程序,也可以编写一个接受输入(来自stdin)并输出最终字符串的函数 测试用例 "this is a string " --> "this is a string" " blah blah blah " --> "blah blah blah" "abcdefg" --> "abcdefg" " " --> "" "12 34 ~5 6 (7, 8) - 9 - " --> "12 34 ~5 6 …
12 code-golf  string 

10
字母数字字符的字符串,以逗号分隔范围的排序列表
给定一串未排序的字母数字字符,例如 ABC321STPpJqZZr0 输出一个“,”分隔的字符范围列表,按ASCII值排序,忽略大小写并删除重复项(即仅输出大写和数字字符),例如 0-3, A-C, J, P-T, Z 规则 程序的长度通常是您的基本分数。 您必须在程序中初始化(硬编码)上面的示例,但是您可以从程序长度中减去该示例的长度,例如,char* s="ABC321STPpJqZZr0";您可以折扣16个字符,其他11个字符计入您的程序长度。 红利(+50赏金) 由于这是我的同事今天遇到的一个实际问题,需要用Tcl 8.0.5(一个古老的版本,缺少许多最新的Tcl内置插件)编写,因此我将向写最短Tcl 8.0的任何人奖励50分.5解决方案,如果Tcl 8.0.5中至少有2个有效提交。
12 code-golf  string 

30
打印带有垂直单词的字符串
您的任务是获取一个由ascii字符组成的输入字符串,并将该字符串输出为一系列由空格分隔的垂直单词。一个例子如下所示: 给定字符串: Hello, World! My name is Foo. 输出应为: H W M n i F e o y a s o l r m o l l e . o d , ! 如果您的程序正确处理了需要环绕终端的字符串,则将获得10分的奖励积分,我们将其设置为80个字符。 如果您的程序也可以反向执行50分!

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.