Questions tagged «string»

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

9
收起反串
在此挑战中,将为您提供字母字符串作为输入。我们将给定输入的“反字符串”定义为所有字母都颠倒的字符串。例如 AaBbbUy -> aAbBBuY 您应该编写一个程序,该程序将字符串作为输入,并搜索最长的连续子字符串,该子字符串的反字符串也是连续子字符串。这两个子字符串不应重叠。 例如,如果给您字符串 fAbbAcGfaBBagF 粗体部分将是最长的字符串反字符串对。 一旦找到该对,您的程序应将它们分别折叠成一个字符。它应该通过删除每个子字符串的除第一个字符之外的所有字符来实现。例如上面的字符串 fAbbAcGfaBBagF 会成为 fAcGfagF 然后,您的程序应重复该过程,直到最长的字符串反字符串对为单个字符或更短。 例如,使用相同的字符串,折叠后的新最长对是 fAcGfagF 所以我们再次折叠字符串 fAcGag 现在该字符串无法再折叠,因此我们应将其输出。 如果候选对之间是平局(例如AvaVA),则您可以减少(AaA或AvV,但不能Aa)。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 fAbbAcGfaBBagF -> fAcGag AvaVA -> AaA / AvV QQQQQQQ -> QQQQQQQ fAbbAcQQQQaBBacqqqqA -> fAbcQBcq gaq -> gaq fAbbAcGfaBBagFaBBa -> fcGaBBag 动机 尽管这个问题似乎是任意的,但实际上是我在编写代码以处理基本面时遇到的问题。该过程可以用于将基本多边形减小为较小的n边。我试了一下之后,以为会打一点高尔夫球。

9
感恩节盛宴
明天,11月23日,是美国的感恩节。要准备,您需要准备一些ASCII火鸡。但是,由于计划迟到,您需要一个程序(或功能)来帮助您准备多少只鸟。 .---. _ .' './ ) / _ _/ /\ =(_____) (__/_/== =================== 您发现的火鸡偏小,因此您已经确定了以下比率-一只火鸡会进食: 四个人只喜欢白肉,三个人只喜欢黑肉 或七个不在乎的人 或其组合。 意思是,在任何给定的火鸡中,总共有4份白肉和3份黑肉。此外,您不能购买和烹制部分火鸡。 例如,对于3个仅喜欢白肉的人,6个仅喜欢黑肉的人和3个无关的人,您将需要两只火鸡。这样就可以得到8份白色和6份深色,这足以满足每个人的需求,并剩下一些白肉: .---. _ .---. _ .' './ ) .' './ ) / _ _/ /\ / _ _/ /\ =(_____) (__/_/== =(_____) (__/_/== ===================================== 对于20个无关紧要的人,您将需要三只火鸡,并且剩下一点点白色或深色: .---. _ .---. _ .---. _ .' …

8
解串字符串
给定一个方形字符串,请在展开的每个阶段生成该字符串的所有输出。 字符串必须每次顺时针旋转四分之一圈。 例子 输入: A 输出: A 注意:仅在这有助于减少字节数的情况下,我也将接受此特定测试用例重复的输入。 输入: DC AB 输出: DC AB D ABC ABCD 输入: GFE HID ABC 输出: GFE HID ABC HG IF ABCDE IH ABCDEFG I ABCDEFGH ABCDEFGHI 输入: JIHG KPOF LMNE ABCD 输出: JIHG KPOF LMNE ABCD LKJ MPI NOH ABCDEFG NML OPK ABCDEFGHIJ …

30
画一个S链
背景 小时候,我被教导一种绘制奇怪的“ S”形的方法,使我(和同学们)着迷。今天,我重新发现了它,并且由于它采用公式化的方式绘制它,因此认为它可能会引发一个有趣的挑战:P 画“ S” 可以通过以下简单步骤绘制S: 首先,像这样绘制2行,每条垂直的三个直线 | | | | | | 接下来,将左上方的线与底部的中线连接,并将上方的中线与右下方的线连接以产生 | | | \ \ | | | 最后,在当前绘制的图像上绘制顶部和底部,使其最终看起来像 ^ / \ | | | \ \ | | | \ / v 如您所见,这将导致“ S”形。但是,当扩展时(绘制超过2行),它会产生一个非常有趣的图案。您的任务是重现此有趣的模式。 任务 给定一个整数where n >= 2,输出S及其n要制成的行。输出可以从函数返回,输入可以采用标准方法。整个图像以及每行的尾随/前导空格都很好。但是,前导空格必须保持一致,以免破折号。您可以输出为行列表。 测试用例 input output --- 2 ^ …

30
删除空间,保持大写
您输入的内容将为英语句子,短语或单词。它只会包含a-zA-Z' -,.!?。您的任务是获取输入,删除空格,然后重新分配大写字母,以使之前被大写的索引中的字母(并且只有之前被大写的索引中的字母)被大写。 例如,如果输入为A Quick Brown Fox Jumped Over The Lazy Dog,则大写字母的(从0开始)索引为0, 2, 8, 14, 18, 25, 30, 34, 39。接下来,从输入中删除空格:AQuickBrownFoxJumpedOverTheLazyDog。接下来,将所有字母都小写,但在0, 2, 8, 14, 18, 25, 30, 34, 39:处将AqUickbrOwnfoxJumpEdovertHelazYdog其大写。 输入项 您输入的内容将为英语句子,短语或单词。它只能包含小写字母,大写字母,连字符,撇号,逗号,句点,问号,感叹号和空格。 输出量 输入的空格已删除,小写字母d,大写字母d中的字母位于大写字母的索引处。 注意:您的程序不会因IndexOutOfRange或类似错误而崩溃(此类执行终止错误)。 测试用例 Hi! Test! Hi!tEst! A Quick Brown Fox Jumped Over The Lazy Dog AqUickbrOwnfoxJumpEdovertHelazYdog testing TESTing TeStING testing …
27 code-golf  string 

30
她w口渴了!
给定一个列表或定界字符串,输出一个列表或定界字符串,其中每个单词的第一个字符一个单词。 对于此挑战,“单词”仅包含所有可打印的ASCII字符,空格,换行符和制表符除外。 例如,使用字符串“世界下午好!”。(以空格分隔): 1. String "Good afternoon, World!" 2. Get the first characters: "[G]ood [a]fternoon, [W]orld!" 3. Move the characters over. The character at the end gets moved to the beginning. "[W]ood [G]fternoon, [a]orld!" 4. Final string "Wood Gfternoon, aorld!" 这是代码高尔夫球,所以最短的代码获胜! 测试用例: Input -> output (space-delimited) "Good afternoon, World!" -> …
27 code-golf  string 

30
12小时至24小时时间转换器
令人惊讶的是,这个简单的任务似乎还不存在,所以... 您的任务是编写一个程序,该程序将12小时时间作为输入,并将其转换为“军事时间”或24小时时间格式。 输入将采用以下形式: HH:MM am/pm 尽管可以有一些细微的变化: 上午/下午与其余时间之间的间隔是可选的。 最后一部分可以是“ am” /“ pm”或“ a” /“ p”。 任何大写字母都可以。 输出将是输入的时间,转换为24小时格式。它可以是数字或字符串。 对于输入和输出: 首先的0是可选的。最后3个位必须为0。 分隔小时和分钟的定界符可以是“:”,“”(空格)或什么都不是。 其他说明: 午夜可以表示为0000或2400。 午夜将被视为“上午”,而中午将被视为“下午”。 您的程序可以是函数,也可以是完整程序,应返回结果或将其输出到标准输出。尾随空格可以。 示例(不需要支持每种格式): 12:00am -> 0000 1200 pm -> 1200 1234Am -> 00:34 134a -> 134 01:34PM -> 13 34 1234pm -> 1234 这是代码高尔夫,因此最少的字节数获胜。由于使用内置程序解决此问题非常简单,因此很高兴看到一些手动解决此问题的代码(但使用内置程序很好)。 只是为了澄清,你是不是需要支持每一个可能的格式。仅支持单个输入和单个输出格式(您选择)就可以了。但是,我想限制上面概述的格式(它已经相当免费了)。{1134,'pm'}例如,这将是不可接受的。

29
按字母顺序排列字符串
任务 您的目标(应该选择接受)是编写一个程序,给定输入字符串(或字符数组),输出该字符串中字母的所有可能排列。我对自己的输出不满意,因此应按字母顺序排序,没有重复。 例: 输入: buzz 输出: buzz bzuz bzzu ubzz uzbz uzzb zbuz zbzu zubz zuzb zzbu zzub 规则 这是代码高尔夫球,因此最短的代码获胜。 每行上的尾随空格都可以 最后一行之后可以有一个换行符(但不能再有其他换行符)

21
原始字符串
Primenary(binary-prime)字符串是这样的字符串,当以二进制网格形式编写时,每一行和每一列都有一个素数总计。 这是一个模糊的解释,所以让我们用一个可行的例子来分解它。 在此示例中,我们将使用字符串bunny: 首先,找到每个字符的ASCII码点及其二进制表示形式: Char | ASCII | Binary b 98 1100010 u 117 1110101 n 110 1101110 n 110 1101110 y 121 1111001 从上到下取这些二进制值,并将它们排列到网格中(如有必要,添加前导零): 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 0 1 1 1 0 1 1 0 1 …

30
子串链化
介绍 在此示例中,让我们使用字符串Hello, World!和数组[3, 2, 3]。为了找到子字符串链,我们经历以下过程: 数组的第一个数字是3,所以我们得到的字符串[0 - 3],这是Hel。之后,我们3从初始字符串中删除了前几个字符,从而使我们有了lo, World!。 数组的第二个数字是2,因此我们[0 - 2]从新字符串中获得子字符串,从而得到lo。剩余的字符串变为, World!。 最后一个数字是a 3,它给我们, W。该子串链是所有子组合,这给我们的: ['Hel', 'lo', ', W'] 对于更直观的示例: [3, 2, 3], 'Hello, World!' 3 -> Hel 2 -> lo 3 -> , W 任务 给定一个非空字符串和一个仅由正整数(> 0)组成的非空数组,输出子字符串chain。您可以假定数组中所有整数的总和不超过字符串的长度。 您还可以假定字符串永远不会包含任何换行符。 测试用例 Input: abcdefghijk, [2, 1, 3] Output: ['ab', 'c', 'def'] …
27 code-golf  string 

26
制作一个(有点)自引用字符串
您想创建一个字符串,其中index 处的(1-indexed)字符n为n。当n小于10,这是很容易:"123456789"。n例如,当值为12时,它变得不可能,因为大于9的数字(以10为底)占用一个以上的字符。我们可以通过将字符串转换成两个字符子妥协:"020406081012"。现在,每个子字符串 结尾的索引n为n。 可以将其概括为任何d数字。这是三位数字字符串的“ 0991021”部分的说明: Index: ... * 97 98 99*100 101 102*103 ... * * * *---+---+---*---+---+---*---+ Character: ... * 0 | 9 | 9 * 1 | 0 | 2 * 1 | ... *---+---+---*---+---+---*---+ 如果还没有弄清楚,您将编写一个程序/函数,该程序/函数接受一个字符串或整数,并输出其自指字符串,如上所述。您还可以输出一个由一位数字,字符或单字符字符串组成的数组。 给定的整数将始终为正,并且可以按长度进行整除(例如126被3整除; 4928被4整除)。理论上,您的程序应该可以为任意大的输入工作,但是您可以假定它小于语言的最大整数和/或字符串长度。 如果您仍然没有得到一些观察结果:输出的长度将始终是输入本身,并且输出中出现的数字将被输入中的位数所除。 这是代码高尔夫球,因此最短答案以字节为单位。 测试用例 1 => 1 9 => 123456789 10 …

15
删除重复和已切换的案例
目标 挑战的目的是:给定一个字符串作为输入,如果该对中的第二个字母大写相反,则删除重复的字母对。(即大写变成小写,反之亦然)。 线对应该从左到右更换。例如,aAa应该成为aa和不aA。 输入和输出: Input: Output: bBaAdD bad NniIcCeE Nice Tt eE Ss tT T e S t sS Ee tT s E t 1!1!1sStT! 1!1!1st! nN00bB n00b (eE.gG.) (e.g.) Hh3lL|@! H3l|@! Aaa Aa aaaaa aaaaa aaAaa aaaa 输入由可打印的ASCII符号组成。 您不应该删除重复的数字或其他非字母字符。 致谢 这个挑战与@nicael的“复制和切换案例”相反。你可以逆转吗? 感谢您对沙盒的所有贡献! 目录 这篇文章底部的Stack Snippet从答案a)生成目录,答案是每种语言的最短解决方案列表,b)则是总体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, …
27 code-golf  string 

30
无效的Invali无效
这个想法大致基于@TùxCräftîñg的聊天消息。 看一下下面的示例序列: INVALID0,INVALID1,INVALID2 INVALID3,INVALID4...INVALID9 之后INVALID9,它像这样继续: INVALI0,INVALI1,INVALI2,INVALI3...INVALI9 之后INVALI9,是这样的: INVAL0,INVAL1,INVAL2,INVAL3...INVAL9 之后,INVAL9是这样的: INVA0,INVA1,INVA2,INVA3,...INVA9 注意我们如何INVALID每次都从单词中删除字母。 您将不断重复此操作,直到到达单个字母,即字母I: I0,I1,I2,I3,I4...I9 现在,您的任务是,像上例一样,输入一个单词,并从中产生一个序列。您的代码还必须使用单个字母,在这种情况下,结果序列将更短。 您可以选择自己喜欢的任何输入和输出格式(根据需要选择带或不带分隔符),但是必须指定选择的格式。 顺序必须严格按照指定的顺序进行。 成功完成此挑战的最短代码(以字节为单位)将赢得挑战。 上例中的完整序列: INVALID0, INVALID1, INVALID2, INVALID3, INVALID4, INVALID5, INVALID6, INVALID7, INVALID8, INVALID9, INVALI0, INVALI1, INVALI2, INVALI3, INVALI4, INVALI5, INVALI6, INVALI7, INVALI8, INVALI9, INVAL0, INVAL1, INVAL2, INVAL3, INVAL4, INVAL5, INVAL6, INVAL7, INVAL8, INVAL9, INVA0, INVA1, …

18
旋转对称数
给定一个整数,如果它是相同的上下颠倒(旋转180°),则输出真实值,否则输出虚假值。 0,1并且8具有旋转对称性。6成为9,反之亦然。 产生真实结果的数字序列:OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

30
编写一个程序来反转其源文件的名称
在一个文件中,编写不需要输入且不会产生输出的程序。运行时,无论名称是什么,它都应该反转其中包含的文件的名称,而无需更改代码或不会产生其他持久的副作用。 任何实现此目的的方法都可以。唯一重要的是,一旦程序运行,唯一的持久更改就是其文件名已被颠倒。例如,目录中不应有新文件。 再次运行该程序应将名称反向。实际上,该程序应该能够任意运行多次。 就此挑战而言: 您可能会假设文件名始终是长度在1到127个字符之间的小写字母(az)字符串。(如果您的语言要求文件具有扩展名才能运行,则只需反转扩展名之前的部分即可,例如mycode.bat→ edocym.bat。) 您可能会认为代码文件本身位于目录中,因此它不会有命名冲突(除了自身)。 您可能不会假定文件名不是回文,即取反后的名称相同。回文的文件名应该和不一样的文件名一起工作。 您可以阅读文件的内容或元数据。此处没有藜麦限制。 您可能会假设您的程序将在特定的,现代的,常见的操作系统(例如Windows / Linux)上运行,因为并非所有外壳程序都具有相同的命令集。 举一个具体的例子,假设您有一个Python程序mycode位于其自己目录中的文件 中。跑步 python mycode 在终端中应导致文件名被反转为 edocym。该文件edocym应仅位于其目录中-不再mycode存在任何命名的文件。跑步 python edocym 会将名称改回mycode,此时可以无限期重复此过程。 如果相同的Python文件已重命名racecar(不更改代码),然后运行 python racecar 由于“赛车”是回文,因此没有任何明显的变化。如果文件名是a或,也是如此xx。 以字节为单位的最短代码获胜。决胜局是最高投票的答案。

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.