Questions tagged «string»

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

28
选框标志字母
每天,您都会在带有活动字母的字幕标志上放一个新单词,只购买您需要写的字母。只要有可能,您都可以重复使用购买的字母来输入较早的单词。给定您要每天写的字,输出您每天购买的字母。 例 Input: ['ONE', 'TWO', 'THREE', 'SEVENTEEN'] Output: ['ENO', 'TW', 'EHR', 'EENSV'] 第1天:开始时你有没有字母,所以写的ONE,你买它的所有字母E,N,O。 第2天:第二天,您要忍受TWO (取下ONE)。您已经有一个Ofrom ONE,因此您购买了一个额外的TW。 第3天:至此,您有了ENOWT。要写 THREE,你需要EHR。请注意,您E除了需要购买一台之外,还需要购买另一台。 第4天:要写作SEVENTEEN,您需要E共有4 个,而您已经有2个(而不是3个!),因此您又买了2个。您也有T和之一N,因此您可以购买剩余的字母: EENSV。 在此示例中,我们输出了按字母顺序排序的字母,但是您可以按任何顺序输出它们。 输入:非空字母字符串的非空列表A-Z。如果愿意,可以使用小写字母。字符列表适用于字符串。 输出:输出或打印您每天需要购买的其他字母。一天中的字母可以以任何顺序输出,但是日期必须以正确的顺序排列。 每天的来信应与其他日期分开,以便您知道一天的结束时间。在一天之内或几天之间,尾随和/或前导分隔符都可以。请注意,一天可能没有购买任何字母,这应该反映在输出中(空格或空行也可以,即使是最后一天也可以)。 测试用例 ['ONE', 'TWO', 'THREE', 'SEVENTEEN'] ['ENO', 'TW', 'EHR', 'EENSV'] ['ONE', 'TWO', 'ONE', 'THREE'] ['ENO', 'TW', '', 'EHR'] ['ABC', 'AABC', 'ABBC', 'ABCC', 'AABBCC'] ['ABC', 'A', 'B', …
41 code-golf  string 

30
解码字符串
这是我对ppcg的第一个挑战! 输入项 由两个不同的ASCII字符组成的字符串。例如 ABAABBAAAAAABBAAABAABBAABA 挑战 任务是按照以下规则解码此字符串: 跳过前两个字符 将字符串的其余部分分成8个字符的组 在每个组中,0如果该字符与原始字符串的第一个字符相同,则替换为每个字符,1否则为 现在每个组代表一个字节。将每个组从字节字符代码转换为字符 连接所有字符 例 让我们解码上面的字符串。 AB AABBAAAA AABBAAAB AABBAABA ^^ ^ ^ ^ | | | | | \---------|---------/ | | Skip Convert to binary 请注意,这A是原始字符串中的第一个字符,B第二个字符。因此,替换每个A与0每个B有1。现在我们获得: 00110000 00110001 00110010 这是[0x30, 0x31, 0x32]二进制的。这些值["0", "1", "2"]分别表示字符,因此最终输出应为012。 计分 当然,这是code-golf,这意味着使您的代码尽可能短。分数以字节为单位。 约束和IO格式 适用标准规则。以下是一些其他规则: 您可以假设输入有效 输入字符串完全由两个不同的字符组成 前两个字符不同 输入字符串的最小长度为2个字符 …
41 code-golf  string 

9
面向移位的编程
通过获取字符串中每个字符的字节值,计算并将结果转换回一个字符,可以将字符串移位一个数字。nc(c + n) mod 256 例如,移动"ABC123"1会导致"BCD234",移动10 in "KLM;<=",并移动255 in "@AB012"。 任务 随便挑选尽可能多的数字n,0 < n < 256并编写一个将字符串作为输入的程序或函数, 当源代码不变时,返回不变的字符串,但是 返回n源代码移位后移位的字符串n。 规则 您提交的分数是受支持的n分数,分数越高越好。因此,最高分数为255。 您的提交必须至少支持一个班次,因此最低分数为1。 如果出现平局,则以较短的程序为准。 所有转移的程序都必须使用相同的语言。

30
这最终将停止……
给定输入字符串S,S按以下方式打印,后跟非空分隔符: 步骤1:S有1/2机会被打印,并且有1/2程序终止的机会。 步骤2:S有2/3机会被打印,并且有1/3程序终止的机会。 步骤3:S有3/4机会被打印,并且有1/4程序终止的机会。 … 步骤n:S有n/(n+1)机会被打印,并且有1/(n+1)程序终止的机会。 笔记 输入字符串仅包含您语言的字符串类型可接受的字符。 可以使用任何非空分隔符,只要它始终相同即可。预期S在程序终止前的最后一次打印之后将打印分隔符。 该程序有1/2机会在打印任何内容之前终止。 尾随新行是可以接受的。 您的答案必须真正地尝试遵守所述的概率。显然,当n大时,这将越来越不正确。正确解释您的答案中的概率是如何计算的(以及为什么它们尊重规范,而忽略伪随机和大数问题)就足够了。 计分 这是代码高尔夫球,因此最短的答案以字节为单位。

30
提示
对于今天的挑战,您必须编写一个可替换字符串大小写的程序或函数。但是,您必须忽略非字母字符。这意味着每个字母字符必须有一个不同的情况下,比前面和下面的字母字符。例如,这比每隔一个字母大写更复杂。如果您使用诸如 hello world 并将所有其他字符转换为大写,您将获得: hElLo wOrLd 如您所见,小写字母o后面是小写字母w。这是无效的。相反,您必须忽略空格,从而得到以下结果: hElLo WoRlD 所有非字母字符必须保持相同。只要输出始终交替,输出就可以以大写或小写开头。这意味着以下内容也是可接受的输出: HeLlO wOrLd 不管输入大小写如何,您的程序都应该可以工作。 输入字符串将只包含可打印的ASCII,因此您不必担心不可打印的字符,换行符或unicode。您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,函数自变量/返回值,STDIN / STDOUT,读/写文件等。 例子: ASCII -> AsCiI 42 -> 42 #include <iostream> -> #InClUdE <iOsTrEaM> LEAVE_my_symbols#!#&^%_ALONE!!! -> lEaVe_My_SyMbOlS#!#&^%_aLoNe!!! PPCG Rocks!!! For realz. -> PpCg RoCkS!!! fOr ReAlZ. This example will start with lowercase -> tHiS eXaMpLe WiLl …
41 code-golf  string 

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

10
方形,钻石,方形,钻石
任务 给定一个非空的小写ASCII字母字符串a- z,请使用第一个字符,并: 用第二个字符的副本方块围住它, 用第三个角色的副本菱形包围它, 用第四个字符的副本方块围住… …在正方形和菱形边框之间交替,直到字符串结尾。边框之间的空白应由ASCII空格()表示。 要添加正方形边框,请在整个当前“工作数组”周围精确绘制一个正方形: sssssssssss t s t s t t s t t s t t s t t s t aaa t s t aaa t s t aca t => st aca ts t aaa t s t aaa t s t t …

8
找到旋转的单词!
不要问我如何或为什么,但是在编码一个项目时,我注意到几个单词的字符有一个特定的模式,称为字母,我用铅笔上的铅笔将单词的每个字符连接起来,我得到了两个螺旋形,然后我注意到第一个螺旋形是顺时针方向,另一个是逆时针方向,还有其他特征...因此我将它们命名为Swirling Words! 一个旋流字可以是: 顺时针或逆时针 向心或离心 这里有一些旋转字的例子: 任务1: 编写一个完整的程序或函数,该函数将从标准输入中提取一个单词,如果是旋转单词及其特征,则以可读格式,扩展文本,3个字符,标志等输出。 不同单词的测试用例和示例输出(但是您可以决定如何表示结果): EARTH, GROUP > NO // NOT A SWIRLING WORD OPERA, STAY, IRIS > SW,CF,CW // SWIRLING WORD, CENTRIFUGAL, CLOCKWISE MINER, TAX, PLUG, META > SW,CF,CC // SWIRLING WORD, CENTRIFUGAL, COUNTERCLOCKWISE AXIOM, AXIS, COOK > SW,CP,CW // SWIRLING WORD, CENTRIPETAL, CLOCKWISE WATCH, …
41 code-golf  string 

30
天哪,吉萨高尔夫!
“吉萨数”(俗称“ 蒂米数”)是指数字代表金字塔的任何数字(A134810)。例如,“ 12321”是一个吉萨数字,因为它可以像这样可视化: 3 2 2 1 1 但是,“ 123321”之类的字符不是吉萨币,因为金字塔的顶部有两位数字 33 2 2 1 1 换句话说,如果满足以下所有条件,则数字为吉萨数: 它的位数是奇数,中间的数字是最大的 它是回文的(相同的向前或向后读取),并且 数字的前半部分严格增加一个。(由于必须是回文,这意味着数字的后半部分必须严格减少一位) 您必须编写一个采用正整数作为输入的完整程序或函数,并确定它是否为吉萨数。您可以将输入作为字符串或数字。如果它是吉萨数,则输出真实值。否则,将产生虚假的值。 共有45个吉萨数字,因此这些输入中的任何一个都应产生真实值: 1 2 3 4 5 6 7 8 9 121 232 343 454 565 676 787 898 12321 23432 34543 45654 56765 67876 78987 1234321 2345432 3456543 4567654 5678765 …

9
揭开一维迷宫的秘密
背景 您醒来后发现自己迷失在一维迷宫中!出现一个神秘的精灵(或其他东西),并解释说出口位于您的面前,但是您与出口之间的挑战是一系列的。当您前行时,您会意识到所有所谓的挑战仅仅是锁着的门。首先,您会看到带有T形钥匙孔的门,而自己却没有这样的钥匙,请后退步伐,寻找具有T形状的钥匙。 沮丧的是,您在地面上发现了字母键的汤,这些汤都不符合您遇到的门。出于某种天才(或愚蠢)的考虑,您决定如果将小写字母t形的钥匙塞入足够的强度,则它可能可以装入该插槽中。当您用t手握小写字母的方式接近门时,T孔会发出绿色的光,并且门会在您面前溶解。 一倒,还有更多... 挑战 挑战的目标是标记退出迷宫需要花费多少步骤。 挑战的输入是迷宫:一个仅包含字符的字符串[A-Za-z^$ ]。词汇表: ^-起始空间。输入将只包含一个^。 $-出口(自由!)。输入将只包含一个$。 [A-Z]-大写字母表示大门。如果您已经收集了必需的密钥,则只能通过此门。 [a-z]-小写字母表示按键。通过走到包含密钥的空间中来收集这些密钥。 输入中每个大写字母最多包含一个。这意味着门的总数将在0-26之间(含0和26)。 每个锁着的门上[A-Z]都有一个对应的小写钥匙[a-z]。输入中可以有任意数量的空格()。 所有的门将在起点的右侧,在出口的左侧。这样就不会有多余的门。所有输入都是可解的。 此挑战的输出将是一个数字,即退出迷宫所采取的步骤数。 算法 您退出这个令人毛骨悚然的地方的有条理的方法如下: 从开头(^)开始,然后向前(向右)收集遇到的所有键。 当您碰到一扇门时,如果您拥有正确的钥匙,则可以继续前进到门上。如果没有正确的钥匙,您将向后走(左)收集碰到的钥匙,直到找到您无法打开的最新门的钥匙。 收集到当前麻烦门的钥匙后,您将返回右侧并继续前进。 重复此过程,直到您进入出口($)。 有经验的高尔夫球手会理解,只要您的代码输出的结果与运行此算法相同,就不必实施此特定算法。 数数 每次您从一个正方形移到另一个正方形时,这都算是一个步骤。转动180º不会产生任何附加步骤。如果没有必需的钥匙,您将无法前进到门上。您必须踩到钥匙才能捡起来,并且必须踩到出口才能赢。首次移动后,起始空格(^)的行为与其他任何常规空格相同。 例子 在这些示例中,我将空格留作下划线以供人类阅读。 输入为_a_^_A__$__。输出为11。您1往前走,注意没有A门钥匙,然后没有脸。您向后走,直到占据了包含a(3向后走,现在4总计)的空间。然后,您可以向前走直到占据包含出口的空间(7向前走,11总计)。 输入为b__j^__a_AJB_$。输出是,41您在迷宫的后面进行了两次单独的行程,一次行程获取j钥匙,而下一次行程获取b钥匙。 输入为__m__t_^__x_T_MX_$____。输出为44。x从头到门的途中捡起钥匙,您将不需要花费额外的时间就可以拿到钥匙T。 输入为g_t_^G_T$。输出为12。如果G没有钥匙,您将无法直接进入空间。您很幸运在拿到t钥匙的路上拿起g钥匙,从而在通往自由的道路上打开了两扇门。 输入为_^_____$。输出为6。那很简单。 I / O准则和制胜标准 适用标准I / O规则。这是一个代码高尔夫挑战。
41 code-golf  string 

30
万圣节高尔夫:2spooky4me挑战!
当前的互联网模因是键入2spooky4me,第二个人按照该(n)spooky(n+2)me模式键入3spooky5me 。 您的任务是以您选择的语言实现此模式。您应该编写一个程序或函数,该程序或函数需要一个值n(来自标准输入,作为函数参数,或最接近的替代项),然后将字符串(n)spooky(n+2)me(不带括号)输出到标准输出,作为函数的返回值或最接近的替代项)。 您的解决方案应该适用于所有输入,从1最多2个(比语言的最大可表示整数值低2个以下)开始(2^32-3例如,对于32位计算机上的C)。 Python中的示例实现: def spooky(n): return "%dspooky%dme"%(n,n+2) spooky(2) -> "2spooky4me" 这是代码高尔夫球,因此禁止标准漏洞,以字节为单位的最短答案为胜! 排行榜 这篇文章底部的Stack Snippet通过答案a)生成了排行榜,a)是每种语言的最短解决方案列表,b)则是总体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在代码段中: ## [><>](http://esolangs.org/wiki/Fish), 121 bytes 显示代码段 <style>body { text-align: left …
41 code-golf  string 

30
输入uniqchars!
给定一个包含可打印ASCII字符的字符串,请按原始顺序产生一个包含其唯一字符的输出。换句话说,输出与输入相同,不同之处在于如果以前出现过char,则将其删除。 不能使用用于在数组中查找唯一元素的内置unique函数(例如,MATLAB具有执行此操作的功能)。这个想法是手动完成的。 更多详情: 允许使用功能或程序。 输入和输出可以采用函数参数,stdin / stdout(甚至对于函数)的形式,也可以混合使用。 如果使用stdin或stdout,则将字符串理解为chars序列。如果使用函数自变量,则可能需要将字符序列括在引号或等效符号中,以供选择的编程语言定义字符串。 输出应该是仅包含输入的唯一字符的字符串。因此,没有多余的换行符,空格等。唯一的例外是:如果输出在stdout中显示,则大多数显示函数都会添加尾随\n(将字符串与接下来的内容分开)。因此在stdout中可以接受一个尾随\n。 如果可能,请发布一个指向在线解释器/编译器的链接,以便其他人可以尝试您的代码。 这是代码高尔夫,因此以字节为单位的最短代码获胜。 假设stdin和stdout的一些示例: 输入字符串: Type unique chars! 输出字符串: Type uniqchars! 输入字串 "I think it's dark and it looks like rain", you said 输出字符串 "I think'sdarloe,yu 输入字串 3.1415926535897932384626433832795 输出字符串 3.14592687
41 code-golf  string 

16
String.prototype.isRepeated
更新:isaacg的Pyth提交是赢家! 你们中的许多人一定听说过,城镇中有一个比较凉爽的JavaScript版本(阅读ES6),该版本中的方法String.prototype.repeat可以使您 "Hello, World!".repeat(3) 并得到 "Hello, World!Hello, World!Hello, World!" 作为输出。 您的工作是用您选择的语言编写一个函数或程序,以检测字符串是否经过了这种转换。 即,输入字符串可以表示为n较小字符串的精确重复次数。如果字符串可以是,则输出(作为函数的return语句或STDOUT)应为true;如果字符串不能表示为较小字符串的重复,则输出为false。 一些样本输入: "asdfasdfasdf" // true "asdfasdfa" // false "ĴĴĴĴĴĴĴĴĴ" // true "ĴĴĴ123ĴĴĴ123" // true "abcdefgh" // false 请注意,最后一个输入为false,因此n应大于1 完整规则 编写任何语言的函数/程序以输入(通过函数参数/命令行args / STDIN)字符串 如果给定的字符串是由较小的字符串的精确重复形成的,则返回/打印真实值,至少重复两次。 理想情况下,输入字符串的最大大小为Infinity 字符串可以具有所有可能的ASCII字符 这是一个代码高尔夫球,因此以字符为单位的最小代码获胜。
41 code-golf  string 

30
在那里,我用胶带固定了它
挑战: 给定仅包含大写和/或小写字母的字符串(以您喜欢的为准),将其tape水平放置即可修复。为此,我们检查字母表中两个相邻字母的差异(忽略环绕并仅向前移动),并在需要的位置填充TAPE/ tape。 例: 输入:abcmnnnopstzra 输出:abcTAPETAPETmnnnopTAstTAPETzra 为什么? 之间c和m应该是defghijkl(长度9),因此,我们用填补这一TAPETAPET; 之间p和s应该是qr(长度为2),因此我们用填补这一TA; 之间t并z应uvwxy(长度为5),所以我们填补了这一带TAPET。 挑战规则: 差异仅适用于正向,因此之间没有胶带zra。 可能会有多个相同的相邻字母,例如nnn。 您可以采用任何合理的格式输入。可以是单个字符串,字符串数组/列表,字符数组/列表等。输出具有相同的灵活性。 您可以随意使用小写和/或大写字母。这适用于输入,输出和TAPE。 可能没有TAPE必要,在这种情况下,输入保持不变。 通用规则: 这是代码高尔夫球,因此最短的答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。您的来电。 默认漏洞是禁止的。 如果可能,请为您的代码添加指向测试的链接。 另外,如有必要,请添加说明。 测试用例: Input: "abcmnnnopstzra" Output: "abcTAPETAPETmnnnopTAstTAPETzra" Input: "aza" Output: "aTAPETAPETAPETAPETAPETAPEza" Input: "ghijk" Output: "ghijk" Input: "aabbddeeffiiacek" Output: "aabbTddeeffTAiiaTcTeTAPETk" Input: "zyxxccba" Output: "zyxxccba" Input: "abccxxyz" Output: "abccTAPETAPETAPETAPETAPExxyz" …
41 code-golf  string 

30
布置地毯
受到这个SO问题的启发。 挑战: 输入: 字符串sss 角色ccc 输出: 在所有四个方向上创建字符串的菱形正方形ASCII艺术作品,字符串的第一个字符在中心并向外。在方形ASCII艺术地毯中,该字符用作填充物。这听起来可能很模糊,所以这里有个例子: 输入:sss = string,ccc = . 输出: ..........g.......... ........g.n.g........ ......g.n.i.n.g...... ....g.n.i.r.i.n.g.... ..g.n.i.r.t.r.i.n.g.. g.n.i.r.t.s.t.r.i.n.g ..g.n.i.r.t.r.i.n.g.. ....g.n.i.r.i.n.g.... ......g.n.i.n.g...... ........g.n.g........ ..........g.......... 挑战规则: 输入字符串也可以是字符列表 输出也可以是字符串列表或字符矩阵 输入字符串和字符保证为非空 该字符串保证不包含字符 字符串和字符都只能是可打印的ASCII(unicode范围[32,126],空格''到波浪号'〜'并包括波浪号'〜') 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法以及返回类型的完整程序。您的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例: 输入:sss = 11111,c=c=c= = 0 输出: 00000000100000000 00000010101000000 …

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.