Questions tagged «string»

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

30
“ DDoouubbllee ssppeeaakk!”
今天是超级简单的挑战,还是吗? 我觉得我们最近听到了很多有关双重发言的信息,让我们以一种可编码的方式来定义它... 重复说话是指立即重复字符串中的每个字符。例如: "DDoouubbllee ssppeeaakk!!" 规则 编写接受一个参数(字符串)的代码。 它将修改此字符串,复制每个字符。 然后它将返回该字符串的双向播放版本。 这是代码高尔夫,请尝试以最少的字节数实现这一目标。 请提供指向您的代码的在线解释器的链接。 输入字符串将仅包含可打印ASCII范围内的字符。参考:http://www.asciitable.com/mobile/ 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 显示代码段 var QUESTION_ID=188988; var OVERRIDE_USER=53748; var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;function answersUrl(d){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+d+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(d,e){return"https://api.stackexchange.com/2.2/answers/"+e.join(";")+"/comments?page="+d+"&pagesize=100&order=asc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(d){answers.push.apply(answers,d.items),answers_hash=[],answer_ids=[],d.items.forEach(function(e){e.comments=[];var f=+e.share_link.match(/\d+/);answer_ids.push(f),answers_hash[f]=e}),d.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(d){d.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),d.has_more?getComments():more_answers?getAnswers():process()}})}getAnswers();var SCORE_REG=function(){var d=String.raw`h\d`,e=String.raw`\-?\d+\.?\d*`,f=String.raw`[^\n<>]*`,g=String.raw`<s>${f}</s>|<strike>${f}</strike>|<del>${f}</del>`,h=String.raw`[^\n\d<>]*`,j=String.raw`<[^\n<>]+>`;return new RegExp(String.raw`<${d}>`+String.raw`\s*([^\n,]*[^\s,]),.*?`+String.raw`(${e})`+String.raw`(?=`+String.raw`${h}`+String.raw`(?:(?:${g}|${j})${h})*`+String.raw`</${d}>`+String.raw`)`)}(),OVERRIDE_REG=/^Override\s*header:\s*/i;function getAuthorName(d){return d.owner.display_name}function process(){var d=[];answers.forEach(function(n){var o=n.body;n.comments.forEach(function(q){OVERRIDE_REG.test(q.body)&&(o="<h1>"+q.body.replace(OVERRIDE_REG,"")+"</h1>")});var p=o.match(SCORE_REG);p&&d.push({user:getAuthorName(n),size:+p[2],language:p[1],link:n.share_link})}),d.sort(function(n,o){var p=n.size,q=o.size;return p-q});var e={},f=1,g=null,h=1;d.forEach(function(n){n.size!=g&&(h=f),g=n.size,++f;var o=jQuery("#answer-template").html();o=o.replace("{{PLACE}}",h+".").replace("{{NAME}}",n.user).replace("{{LANGUAGE}}",n.language).replace("{{SIZE}}",n.size).replace("{{LINK}}",n.link),o=jQuery(o),jQuery("#answers").append(o);var p=n.language;p=jQuery("<i>"+n.language+"</i>").text().toLowerCase(),e[p]=e[p]||{lang:n.language,user:n.user,size:n.size,link:n.link,uniq:p}});var j=[];for(var k in e)e.hasOwnProperty(k)&&j.push(e[k]);j.sort(function(n,o){return n.uniq>o.uniq?1:n.uniq<o.uniq?-1:0});for(var l=0;l<j.length;++l){var m=jQuery("#language-template").html(),k=j[l];m=m.replace("{{LANGUAGE}}",k.lang).replace("{{NAME}}",k.user).replace("{{SIZE}}",k.size).replace("{{LINK}}",k.link),m=jQuery(m),jQuery("#languages").append(m)}} body{text-align:left!important}#answer-list{padding:10px;float:left}#language-list{padding:10px;float:left}table thead{font-weight:700}table …
57 code-golf  string 

30
再有一个LUL,我出去了
挑战说明 在流行的流媒体网站twitch.tv的某些频道上,人们倾向于在聊天中发送垃圾邮件,诱使人们发送垃圾邮件“ LUL”, One more LUL and I'm out LUL是一种流行的表情,用于表示流中发生了有趣的事情。 很快,模因模因展示了它们的潜力,并模仿了随后的复制面: One more "One more LUL and I'm out" and I'm out 嵌套在同一消息中。给定一个非负整数N,N按照以下模式自己输出LUL-pasta嵌套时间。 应用标准代码高尔夫规则,以字节为单位的最短代码获胜。 样品输入/输出 0: One more LUL and I'm out 1: One more "One more LUL and I'm out" and I'm out 2: One more "One more "One …
57 code-golf  string 

30
热情地俄语化字符串
你们中的许多人可能在某个时候与来自俄罗斯的人进行了互动,并且其中的一部分人可能已经注意到他们表达自己的方式有些奇怪。 例如 удали игру нуб))) 在)))为强调前面的语句而添加的地方,我一直在研究一个理论,即)s与其余字符串的比率与隐含强调的量成正比,但是我经常发现很难计算该比率快速进行中,因为我也在努力应对大量滥用情况,所以我想用最短的代码来帮助我计算出结果字符串应该是什么,对于原始值(介于0和500%之间), ,热情的字符串,这将极大地帮助我的研究,因为每次我想检验我的假设时,我都不必键入笨拙的脚本。 因此,挑战在于: 编写一个完整的程序或函数,以整数格式(0到500之间)或十进制格式(0到5之间,有2个精度点)提供两个参数,一个未知长度的字符串和一个数字,将 返回/显示原始的字符串,与多个后缀)的 该数字将作为输入数字与字符串长度的比率计算得出。 因此,如果被提供的号码200,或2.00,所述串的200%,必须作为后缀)的 小数点后四舍五入的括号数量无关紧要。 需要脚本来支持可打印ASCII字符。 只需支持您选择的一种输入数字格式。 例子: "codegolf" 125 = codegolf)))))))))) "codegolf" 75 = codegolf)))))) "noob team omg" 0.5 = noob team omg)))))) "hi!" 4.99 = hi!))))))))))))))) 示例代码(PowerShell)(带十进制输入): Function Get-RussianString ([string]$InputStr,[decimal]$Ratio){ $StrLen = $InputStr.Length $SuffixCount = $StrLen * $Ratio $Suffix = …
57 code-golf  string 

27
破解中
还记得那些蛮力破解密码的程序,它们显示了他们尝试的每种组合吗?更准确地说,在某个时刻,固定了n个第一个字符(已经成功猜出了它们),其余的每个可能的字符都在测试中。您可能已经看过电影或喜欢精美界面的人编写的某些软件。 抱歉,我们很抱歉,但是我们不会编写破解密码的程序,而只提供一个程序来复制漂亮的输出。 挑战 给定一个包含可打印的ascii字符但没有换行符的字符串(ascii代码32到126或与regex匹配^[ -~]{2,}$),请按照以下规则打印输出: 在时间t=n seconds,n打印的n第一个字符是输入字符串的第一个字符。 的后n固定字符,则应该字符串形成随机字符追加(从unicode的范围内选择均匀地伪随机 ,以~(码32至126)),以形成所述初始之一的长度的字符串。 您应该每秒至少输出20行(稍后再详细介绍):每个行将具有相同的n首字符,但随机结尾不同。 目前尚不清楚您应该做什么,所以让我们来看一个例子: 例 我每秒钟只打印5条不同的行,而不是20条最小值,只是为了使其更具可读性。 考虑输入abcde。 在第一秒内,有效输出可能类似于(完全随机): dGuT4 S!jkN "gQ>[ TU3! *fAjV 然后,t=1每个后续字符串a的第一个字符将是(输入的第一个字符): a);jD aHv^p aqw5* a|.?: a{gbK 现在,,t=2前两个字符为ab: abTJ" ab\ e ab3T# abYWS ab"#< 现在,t=3前三个字符为abc: abcvW abc3G abc(g abc{@ abc@4 现在,t=4前四个字符为abcd: abcdD abcdv abcdj abcd$ abcd6 最后,t=5我们打印输入(仅一次): abcde 一些精度 您不应该对秒级的语言精度太费心(例如,如果您的算法正确但系统/语言缺乏精度,那就很好了)。 第一秒可以短于一秒(也就是说,如果您在一秒钟内启动程序,则第一秒可能只是直到当前秒结束为止的剩余时间)。或者换句话说,您不必等待新的一秒开始打印输出。 …

8
做蛇蛇之吻
一条可弯曲的蛇看起来像这样: <||=|||:)~ 垂直条(每个单独序列|)是一个弹性的蛇,被称为一个有弹性的部分,是单独地可伸展到它的宽度的两倍,并绘制具有交替斜杠(/,\)一次延长。 上面特定的蛇有两个这样的伸展部分,给它四个可能的姿势: <||=|||:)~ </\/\=|||:)~ <||=/\/\/\:)~ </\/\=/\/\/\:)~ 此正则表达式定义了伸展最少的伸展蛇的一般形式: <(\|+=)*\|+:\)~ 可以用以下文字表示: <,随后通过任何数目的序列|的连接与=迹象,随后:)~。 So <|:)~and <||:)~and <|=|:)~and <|=|=||=|||||=||:)~是可弯曲的蛇,而<=:)~and <=|:)~and <||=:)~and <|==||:)~不是。 易弯曲的蛇也可以朝左而不是朝右,例如~(:|||=||>。形式是一样的,只是被镜像。 挑战 编写一个程序,该程序使用两条彼此面对的伸缩性蛇的单行字符串,中间留有一定数量的空格。两条蛇都将处于其伸展最少的姿势(所有竖线,无斜线)。字符串将从右向蛇的尾部开始,然后从左向蛇的尾部结束(您可以选择假设还有尾随换行符)。 例如,这是一条可能的输入,在蛇之间有五个空格: <|=||:)~.....~(:||||> .为了清楚起见,我使用句点()而不是实际的空格字符。 蛇之间的零间距也是有效的输入: <|=||:)~~(:||||> 我们说蛇在舌头这样触摸时在亲吻。 您的程序需要扩展两条蛇的可拉伸部分的某种组合,以使蛇之间的间隔最少(不重叠),即蛇尽可能接近接吻。 两条蛇的尾巴都是固定的,但它们的头部和身体可以移动-根据伸展的部分,向右移动,向右移动,向左移动。 程序的输出是单行字符串(加上可选的尾随换行符),该字符串显示蛇尽可能接近接吻的位置,并为延伸的可伸展部分绘制交替的斜线代替竖线。 例如,<|=||:)~.....~(:||||>(从上面)的输出为: </\=||:)~~(:/\/\/\/\> 这是唯一的解决方案,因为在伸展部分的任何其他组合下,蛇会重叠或离接吻更远。 如果有多种解决方案,则输出可能是其中任何一种。 例如,如果输入是 <|=||:)~.....~(:|||=|> 输出可能是 <|=/\/\:)~~(:/\/\/\=|> 要么 </\=||:)~~(:/\/\/\=/\> 请记住,并非总是能够使蛇亲吻,但是您仍然需要使它们尽可能靠近。 例如,如果输入是 <||=||||:)~...~(:||> 输出可能是 </\/\=||||:)~.~(:||> 要么 <||=||||:)~.~(:/\/\> 如果蛇已经在接吻,则输出将与输入相同。例如 …

10
小钱德勒很伤心。画他的云,使他振作起来
小钱德勒很伤心。画他的云使他振作起来。 注意:画云实际上不会使他振作起来。 圆可以定义为三元组(x,y,r),其中x是圆在笛卡尔平面上的x位置,是圆在笛卡尔平面y上的y位置以及圆r的半径。x并y可能是负面的。r永远是积极的。输入是以空格分隔的三元组形式的圆的列表。例如: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 的3,1,1意思是“在与中心点的圆3,1与1个半径。3,2,1.5是指”在与中心点的圆3,2用1.5半径。 如果我们在图形上绘制输入的所有这些圆,则看起来像这样(我仅出于清晰起见添加了网格线和标签;它们不是必需的): 注意所有的圆是如何凝聚的。也就是说,它们全部重叠在一起,从而形成一个大的组,而没有其他的小圈子。输入保证是内聚的。 假设现在绘制一条绕这些圆形成的“边界”行进的线,而没有其他任何线。就像绘制所有圆组成的轮廓的边界一样。生成的云看起来像这样: 因此,仅通过在输入中绘制形成边界的圆弧来形成单一形状即可形成此云。换句话说,仅通过绘制不在另一个圆内的圆弧来形成云。您的程序将以上述形式接受输入,并输出显示结果云的图像。云的整体形状必须正确,但是比例,颜色,线条粗细以及在顶点处的外观取决于您。请注意,云必须是可见的,因此您不能拉出类似“此程序在白色背景上绘制白色云”,“此程序以无限小的比例绘制云”,“此程序以0绘制云”之类的内容。线宽”等。还请注意,边框的颜色必须与填充或背景的颜色不同。 另一个例子。输入: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 输出: 如果云中存在“洞”,则也应绘制该洞。输入: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 输出: 这是一条重要规则:您的程序必须仅绘制形成边框的线。这意味着您不能简单地完全绘制圆,然后用白色填充将圆绘制得稍小一些,因为该方法仍会绘制不形成边界的线,之后只会将其覆盖。该规则的目的是防止“绘制圆,然后用白色填充再次绘制圆”的实现或类似的方法。预计答案将在绘制之前实际计算出绘制对象的位置。 这是代码高尔夫球,因此最短的字符数获胜。

30
您所有的基地都属于我们(受限制)
不需要输入,输出必须读为“ All your base are belong to us”。 限制条件 没有外部资源。 加上以下至少两个: 您在代码中的任何情况下都不能使用“ a”,“ b”,“ t”,“ u”或“ y”(如果可以的话,可以在高尔夫得分上加-10) 在您的代码中,无论如何都不能使用“ l”,“ o”,“ s”,“ e”或“ r”(如果可以的话,可以在高尔夫球得分上加-20) 在您的代码中,无论如何都不能使用“ n”,“ g”,“ 0”,“ 1”或“ 2”(如果可以的话,对高尔夫成绩加分-30) 因此,例如,如果您设法用40个字符完成代码并使用规则1和2,则高尔夫球得分为40-10-20 = 10个字符。 最小码的高尔夫球得分获胜...祝您好运!

13
谁是美国总统?
挑战 编写一个程序,将1789年4月30日至2019年8月21日的一天作为输入,并返回当日为美国总统的输出。 笔记 有关美国总统的名单,姓名格式和任期,请参见以下内容: April 30, 1789 - March 4, 1797 George Washington March 4, 1797 - March 4, 1801 John Adams March 4, 1801 - March 4, 1809 Thomas Jefferson March 4, 1809 - March 4, 1817 James Madison March 4, 1817 - March 4, 1825 James Monroe March …

30
括号是否完全匹配?
您必须编写一个程序或函数,该程序或函数带有方括号,并输出该字符串是否完全匹配。您的程序应打印真实或虚假的值,并且IO可以采用任何合理的格式。 规则和定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套在几层深处。 [(){<><>[()]}<>()] <[{((()))}]> 仅在以下情况下,字符串才被视为“完全匹配”: 每个字符都是一个括号, 每对支架都有正确的打开和关闭支架,并且顺序正确,并且 每个括号都匹配。 您可以假设输入将仅包含可打印的ASCII。 测试IO 以下是一些应返回真实值的输入: () [](){}<> (((()))) ({[<>]}) [{()<>()}[]] [([]{})<{[()<()>]}()>{}] 以下是一些应返回假值的输出: ( Has no closing ')' }{ Wrong order (<)> Each pair contains only half of a matched element (()()foobar) Contains invalid characters [({}<>)> …

30
不使用它就打印每个可打印的ASCII字符
用您选择的编程语言编写95个程序,每个程序输出95个可打印ASCII字符中的 一个,而该字符不会出现在程序中的任何位置。 例如,如果您的语言是Python,则输出字符的程序P可能是 print(chr(80)) 因为它P具有ASCII代码80。此程序有效,因为它P从未出现在源代码中。但是,对于输出小写字母的程序,p类似 print(chr(112)) 将是无效的,因为虽然它确实打印了p,但p仍存在于代码中。一个有效的程序可能是 exec(chr(112)+'rint(chr(112))') 可以打印p但不包含p。 您的目标是使95个程序中的每一个都尽可能短。您的分数是所有程序的字符长度之和。 如果由于某种原因您无法为某些字符编写有效的程序,则可以将这些字符标记为“ Did Not Program”或DNP,并完全省略它们的程序。这样,语法严格的语言就可以竞争。 获奖的答案是,有得分最低的答案中的一组拥有最少的DNP的答案。 规则 您所有程序的源代码只能包含可打印的ASCII加上制表符和换行符,所有这些都被视为一个字符。(由于采用了不同的编码,因此很容易省略不存在的字符!) 注意:此规则似乎是必需的,但是有许多语言使用不同的编码,我敢肯定看到它们的答案会很酷。因此,您可以打破这条规则,可以使用任何想要的字符,但是您的答案将变得不具有竞争力,因此无法取胜。 根据您语言的标准约定,程序必须是实际的完整程序。不允许使用功能和REPL代码段。 每个程序的输出应转到stdout或您的语言可接受的替代方案。 程序不应提示或要求输入。(如果提示输入是您的语言固有的,那么可以。) 程序应具有确定性,运行时有限且独立。例如,一个文件是否在与其他程序分开的文件夹中运行没关系。 程序的输出应该是与之对应的可精确打印的ASCII字符,可以选择在其后跟一个单行换行符,仅此而已。 确保在答案中包括所有95个(理想)程序的信息,以及分数和任何DNP。你不必列出所有遵循像一个简单的模式程序“ ,...”但要确保你确信他们都将工作,你的分数是正确添加。print(chr(80))print(chr(81))print(chr(82)) 作为参考,以下是程序必须输出的95个可打印ASCII: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

30
如果一个代码高尔夫球可以打高尔夫球,一个代码高尔夫球可以打多少代码?
编写一个函数或程序,以两个单词作为输入并输出流行的英语舌扭曲的变体“如果土拨鼠可以夹木头,那么土拨鼠可以夹多少木头?”。 输出将使用第一个单词四次 多少wood将一wood盘盘如果一个wood吸盘可以扔掉wood? 第二个单词四次 多少木头木chuck chuck若木chuck能chuck有木有? 其他输入的其余输出相同。 How much木材would a土拨鼠夹头if a土拨鼠could夹头木? 输入和输出可以采用您的语言可以合理识别为处理文本字符串的任何格式。输出必须完全采用指示的格式,包括大写,空格和缺少空格以及结尾的问号。可选的尾随换行符是可接受的。 理想情况下,您的代码将处理包含任何可打印ASCII字符的输入。但是,允许将输入限制为可打印ASCII的合理子集。只需在您的答案中指出。处理较大的字符集当然很好。 输入/输出对示例: "wood", "chuck" "How much wood would a woodchuck chuck if a woodchuck could chuck wood?" "ground", "hog" "How much ground would a groundhog hog if a groundhog could hog ground?" "bar", "keep" "How much bar would …
55 code-golf  string 

16
“ 99瓶汽水”
挑战 编写一个将歌词输出到99瓶啤酒的程序,但是如果墙上的瓶子数是3的倍数,则输出“嘶嘶” ,而不是“啤酒”,如果是5的倍数,则输出“嗡嗡声”,并且如果“ fizzbuzz”是3的倍数和5的倍数。如果墙上的瓶子数量不是3或5的倍数,则只需照常输出“啤酒”即可。 歌词 99 bottles of fizz on the wall, 99 bottles of fizz. Take one down and pass it around, 98 bottles of beer on the wall. 98 bottles of beer on the wall, 98 bottles of beer. Take one down and pass it around, 97 bottles …

30
无糖语法
在Haskell中,列表符号: [a,b,c] 只是语法糖,用于: a:b:c:[] 和字符串符号: "abc" 只是语法糖,用于: ['a','b','c'] 这意味着字符串: "abc" 是相同的: 'a':'b':'c':[] 任务 给定一个字符串,您应该输出在Haskell中看起来像无语法的版本。 规则 您将通过任何有效的输入方法收到一个字符串,您应该输出一个字符串,该字符串以:[]输入中的每个字符结尾,并用包围'并用分隔:。空字符串应该输出[]。 您可以假设您不会收到任何需要转义的字符(例如',换行符,制表符...),并且输入内容处于可打印的ascii范围内 这是代码高尔夫球,您应尽量减少答案的字节数 测试用例 "" -> [] "a" -> 'a':[] "Hello, World" -> 'H':'e':'l':'l':'o':',':' ':'W':'o':'r':'l':'d':[]

24
做一碗字母汤
这就是我们所说的一碗字母汤-一种大致呈圆形的ascii-art形状,具有26个大写英文字母(AZ)顺时针排列以形成周长: XYZABC VW DE U F T G S H RQ JI PONMLK 编写一个使用单个字母字符AZ并输出相同碗的“旋转”字母汤的程序,可以这么说,因此输入字母出现A在上例中的位置,其余字母完全循环顺时针。 因此,输入的输出A将是相同的原始碗字母汤。 输入的输出B将是以下内容: YZABCD WX EF V G U H T I SR KJ QPONML 同样,输出为H: EFGHIJ CD KL B M A N Z O YX QP WVUTSR 或Z: WXYZAB UV CD T E S F R …

30
如何随机化单词中的字母
根据一个有争议的故事,对于拉德尼格来说,杂乱无章的杂物对拉德尼格的影响不大,就像伊诺格像原始杂物杂乱无章的拳头一样。 因此,为了好玩,将单词中的字母顺序随机化而又将第一个和最后一个字母保留在原位的最短函数是什么? 这是我使用JavaScript的目的。删除的所有空格都为124130个字符。 function r(w) { var l=w.length-1; return l<3?w:w[0]+w.slice(1,l).split("").sort(function(){return Math.random()-.5}).join("")+w[l]; } 总是欢迎使用较短的JavaScript。 编辑:添加了长度检查。简短的功能不应失败。

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.