Questions tagged «string»

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

25
打网球2:东西方比赛
有一个挑战,让我们打网球的丹尼尔。他建议在南北方向建立法院。我的提议是建立一个法院,以东西方向打网球。 您必须打印一个网球场,但是由于机密原因,您必须以最少的字节数进行打印。 网球场 ------x------ | | x | | | |--x--| | | | x | | ------x------ 原始规则是: 没有多余的空间。 没有标签,因为它们将不公平。 允许使用一个可选的尾随换行符。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

26
接受三个整数并返回整数和字母列表的函数
挑战 我们需要三个正整数a,b以及c作为输入。使用这些整数,首先[0, c]以的步长在范围内(包括两端)创建一个序列b。例如,对于a=4, b=2, c=100,序列将为[0,2,4,...,96,98,100]。 对于此序列中可被整除的每个数字a,将其替换为小写字母中的下一个字母,从字母“ a”开始,到“ z”后回绕到“ a”。 例: 输入:a=4, b=2, c=100 输出:a2b6c10d14e18f22g26h30i34j38k42l46m50n54o58p62q66r70s74t78u82v86w90x94y98z 挑战规则: 你可以假设a,b以及c只为正整数,其中b ≤ a ≤ c。 您可以假设a是的倍数b。 您可以假定c被整除b。 首选输出是如上所述的单个串联字符串,但是列表/数组也是可以接受的。 测试用例: Input: a=4, b=2, c=100 Output: a2b6c10d14e18f22g26h30i34j38k42l46m50n54o58p62q66r70s74t78u82v86w90x94y98z Input: a=9, b=3, c=174 Output: a36b1215c2124d3033e3942f4851g5760h6669i7578j8487k9396l102105m111114n120123o129132p138141q147150r156159s165168t174 Input: a=10, b=2, c=50 Output: a2468b12141618c22242628d32343638e42444648f Input: a=25, b=1, c=25 Output: a123456789101112131415161718192021222324b Input: a=6, …

30
字母位置查找器
受到Codewars Kata的启发。 您的目标是采用这样的输入字符串: "'Twas a dark and stormy night..." 并返回一个字符串,其中包含字母中每个字符的位置,以空格分隔并忽略非字母字符,如下所示: "20 23 1 19 1 4 1 18 11 1 14 4 19 20 15 18 13 25 14 9 7 8 20" 对于其他挑战,您可以用+ 27替换原始字符串中的任何数字字符。例如,"25"将变为"29, 32"。这是完全可选的。 您必须使用1索引('a'==1,'b'==2,等) 附加规则: 您必须返回字符串,而不是数组。 尾随空格可以。 获胜者的字节数最少。 祝好运!

7
在那里,我将其固定(用绳子固定)
相关:横向比较相似(但容易得多)的挑战:在那里(用胶带固定) 挑战: 给定仅包含大写和/或小写字母(以您喜欢的为准)和换行符的字符串,请rope垂直放置以对其进行修复。为此,我们检查字母表中两个相邻字母的差异(忽略环绕并且仅向下移动),并在需要的地方填充ROPE/ rope。 注意:此挑战与“ 我已解决(使用磁带)”挑战之间的另一个主要区别是,这次我们没有浪费rope我们的时间tape(在挑战的第一部分中,@ JonathanAllan建议)。 例: 输入: abc bcd ddd eex gfz hka imh 输出: abc bcd Rdd deE efR OPO gEP hRE iOR kO PP mE R O P E R O P E R O x P z a E R O P E R h …

6
这是令人满意的数字吗?
受此聊天对话启发 甲满足号码是一个号码,其十进制表示的形式为abx,具有以下属性: x是最长的尾随重复后缀,如果末尾没有重复,则为最后一位(123333-> 3333,545656-> 5656,123-> 3) b是x(123333-> 2,55545656-> 4)之前的一位数字 a是剩余的前缀(123333-> 1,55545656-> 555) a == c**b(**表示指数),其中c是x(1623333-> 4(3 3 3 3,不是33 33))的最小重复部分的重复次数 例如,8300是具有满足数a = 8,b = 3,c = 2,和x = 00。24651是不是一个满意的数字,因为x = 1,b = 5,a = 246,并且没有整数c是满足c^5 = 246。1222也不是令人满意的数字,因为使用x = 222和时b = 1,没有剩余数字a。 给定正整数n >= 100,输出是否n为令人满意的数字。 例子 8300: True (a=8, b=3, c=2, …

7
阅读我的自由格式日期
给定以以下任何格式(必须在同一程序中全部处理)编写的日期,请将其解析为有效的yyyy/mm/dd date。 17th May 2012 March 14th, 2016 20 February 2014 September 14, 2017 Sunday, June 8, 2015 规则 日期有时是无效的,即。如果月份中的日期不正确或一年中的月份数不正确,则必须处理两种情况。您可以选择是否出错或返回一致的false值。(但是,它们将遵循上面的模板格式) 必须使用少于10天和几个月的填充来创建两位数的输出。 月名称将始终为全名,而不是三个字符的缩写。 您可以假设年份始终在0000-9999之间。 负数无需处理。 您可以创建完整的程序或函数,以便输出可以是任何格式,可以打印到控制台或可以从函数返回。 输入将始终是一个字符串,输出必须始终是一个字符串,如果这使得将其作为数组中的单个参数变得更短,例如。["17th May 2012"]您可以这样做,并且输出可以相同["2012/05/17"] 您可以假设输入中的拼写正确。 奖励:这里不喜欢挑战的cos;) 如果你能设法还允许的输入格式,The Fourteenth of March, 2016或者March the Fourteenth, 2016你可能需要一个额外的20个字节关闭您的代码与任何最终的字节数小于1,导致1。 这是每一天的完整书面数字,以免造成拼写混乱。 First, Second, Third, Fourth, Fifth, Sixth, Seventh, Eighth, Nineth, Tenth, Eleventh, …
10 code-golf  string  date 

10
我的后缀是什么类型?
介绍 因此,我一直在浪费时间来研究后缀排序算法,以手工和代码方式评估新的想法。但是我总是很难记住后缀的类型!能告诉我我的后缀是哪种类型? 最左边是什么? 许多后缀排序算法(SAIS,KA,我自己的daware)将后缀分为不同的类型,以便对其进行排序。有两种基本类型:S型和L型后缀。S型后缀是字典顺序以下(后缀小号比下面后缀和小光伏)L型,如果它是按字典顺序更大(大号 arger)。甲最左边的S型(LMS型)就是:甲S型,其由preceeded后缀L型后缀。 这些LMS类型后缀的特殊之处在于,一旦我们对它们进行了排序,就可以在线性时间内对所有其他后缀进行排序!那不是很棒吗? 挑战 给定一个字符串,假定它以小于该字符串中任何其他字符的特殊字符终止(例如,甚至小于空字节)。为每个后缀输出对应的char类型。 您可以自由选择使用哪种类型的字符哪个,但我更喜欢L, S and *的L-, S- and LMS-type,只要它们是所有可打印的(0x20 - 0x7E)。 例 给定字符串mmiissiissiippi输出(使用时L, S and *): LL*SLL*SLL*SLLL 例如,第一个L是由于在mmiissiissiippi$字典上大于miissiissiippi$($代表所添加的最小字符)的事实: L - mmiissiissiippi$ > miissiissiippi$ L - miissiissiippi$ > iissiissiippi$ * - iissiissiippi$ < issiissiippi and preceeded by L S - issiissiippi$ < ssiissiippi$ L - …

3
整数与发音词之间的映射
目的 这个想法是提供将32位整数映射到最大字符数为9的可发音单词之间或从该单词映射来的必要代码。例如,这可以使序列号更容易记住或输入表格。 既需要将整数转换为相应单词的方法又需要将单词转换回相应整数的方法。 规则 整数和单词之间必须存在一对一的映射,并且整个32位整数(或者换句话说,从0到4294967295的任何整数)都必须是可映射的。尽管显然,并非所有单词都有意义,但是输入未映射到整数的单词可能具有未指定的行为。 您可以自由决定确切的“发音”词集是有意义的,以及映射的完成方式,但是词至少必须遵循以下规则: 只能使用基本的26个字母(A ... Z)作为字符。口音,套管等不得用于扩展可能的组合。 每个单词最多9个字符。 两个辅音(BCDFGHJKLMNPQRSTVWXZ-20个可能性)不能彼此相邻放置(它们必须被元音包围)。 两个元音(AEIOUY-6种可能性)不应彼此相邻放置(它们必须被辅音包围)。 注意:最简单的方案是将所有单词构造为CVCVCVCVC(C是辅音和V元音),给出4147200000组合,而32位整数有4294967296个可能的值,所以这还不够。您需要通过允许较短的单词或通过允许扩展组合的数量VCVCVCVCV组合。 其他标准规则也适用,并且标准漏洞也被禁止。 输入/输出 对于每次提交,必须提供两段代码: 一个以整数作为参数/输入并返回/打印相应单词的参数 一个以单词作为参数/输入并返回/打印相应整数的函数 另外,您可以选择提交处理这两种操作的单个代码: 当给定整数作为输入时,它将输出相应的单词 当给定一个字符串作为输入时,它将输出相应的整数 获奖条件 这是一个代码高尔夫球,答案最少的字节(将两个代码段加在一起时,用于选择分离代码段的解决方案)将获胜。

6
N个碱基中的回文数
给定一个非负整数n >= 0,请永远输出x_i >= 3以完全n不同b的底数为回文数的整数序列,底数可以是2 <= b <= x_i-2。 这基本上是OEIS A126071的反函数,在此输出中该序列中的哪些索引具有值n。有点不同,因为我更改了它,所以您忽略了碱基b = x_i-1, x_i, x_i+1,因为这些碱基的结果始终是相同的(值始终是回文率,或者始终不是)。此外,偏移量也不同。 x_i限制为数字,>= 3因此每个结果的第一项n为A037183。 请注意,输出格式是灵活的,但是应该以很好的方式分隔数字。 例子: n seq 0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ... 1 5 7 8 9 12 13 14 22 23 25 29 35 …
10 code-golf  sequence  base-conversion  palindrome  code-golf  array-manipulation  matrix  code-golf  string  ascii-art  code-golf  ascii-art  physics  code-golf  number  sequence  fibonacci  code-golf  ascii-art  packing  code-golf  string  hexadecimal  code-challenge  restricted-source  decision-problem  binary  code-golf  code-golf  code-golf  stack-exchange-api  code-golf  string  parsing  generation  data-structures  code-golf  kolmogorov-complexity  graphical-output  code-golf  array-manipulation  integer  generation  data-structures  code-golf  number  random  probability-theory  king-of-the-hill  java  minesweeper  code-golf  string  kolmogorov-complexity  animation  code-golf  string  code-golf  code-golf  quine  code-golf  internet  code-golf  arithmetic  base-conversion 

8
断弦金字塔
给定字符串n,创建一个字符串金字塔,相对于当前行,该金字塔分为几部分。 第一行包含未修改的字符串。 第二行包含被管道分成两半的字符串。 第三行将其分隔三分之二... 等等。每个子字符串的长度,其中l是字符串n的长度等于 地板(l / n) 剩下的字符将放在其自己的子字符串中。使用的最后一行是第一行,其中子字符串的长度为2。 测试用例: 输入:您好,世界。 输出: Hello, world. Hello,| world|. Hell|o, w|orld|. Hel|lo,| wo|rld|. He|ll|o,| w|or|ld|. 输入:abcdefghij 输出: abcdefghij abcde|fghij abc|def|ghi|j ab|cd|ef|gh|ij 输入:01234567890abcdef 输出: 01234567890abcdef 01234567|890abcde|f 01234|56789|0abcd|ef 0123|4567|890a|bcde|f 012|345|678|90a|bcd|ef 01|23|45|67|89|0a|bc|de|f 额外规则: 您可以编写完整的程序或函数,而使用较少的代码。 输入内容的长度至少应为4个字符。 如果您的语言支持,则必须使用换行符。如果不可能,将换行符替换为: 输入将始终是可打印的ASCII。 如果您的程序解决了P对NP,请减负100%。 排行榜: 显示代码段 var QUESTION_ID=104297,OVERRIDE_USER=62384;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 commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function …
10 code-golf  string 

2
位置意识
位置意识 您的任务是生成一个程序,该程序针对其字符的每个排列(包括原始程序),输出每个字符相对于原始程序的位置。 如果您的程序是 Derp 你必须输出 [0, 1, 2, 3] (或一些等效)。这是因为D是在0个位置,e是在1第一,R是2Nd和p所述3次。 让我们采用另一个程序,它是原始程序,但其字符已排列: epDr 您必须输出 [1, 3, 0, 2] 因为e是在1原始程序的第一位置,p在3第三位置,D所述0th,并且r所述2第二。 如果原始程序有两个重复字符: abcda -> [0, 1, 2, 3, 4] 然后为了进行排列,数组中的0和4必须按升序排列: baadc -> [1, 0, 4, 3, 2] (0 first, then 4) 规则: 您的程序必须至少包含两个唯一字符。 最多floor(n/2)字符应相同。 aabb (acceptable) aaaabc (not acceptable, only floor(6/2) = 3 …

3
从单词列表中找到最短的字母
一个全字母短句是一个包含每个字母串a- z英文字母,不区分大小写的。(如果pangram包含一个字母的多个副本,或者除字母之外还包含非字母字符,则可以。) 编写一个程序或函数,其输入为字符串列表,并输出一个或多个具有以下属性的字符串: 每个输出字符串必须是一个字符集。 每个输出字符串必须通过串联输入列表中的一个或多个字符串来形成,并用空格分隔。 在具有这些属性的所有字符串中,每个输出字符串必须最短,或者最短。 许多程序将选择仅输出一个字符串;您只需要输出多个字符串,否则就不得不编写额外的代码来限制输出。 您可以假定输入中没有不可打印的字符或空格,并且输入的单词长度不超过(列表长度的自然对数的26倍)个字符。(但是,您可能不会假设输入内容只包含字母,或者仅包含小写字母;标点符号和大写字母完全可能。) 输入和输出可以任何合理的格式给出。为了测试您的程序,我建议使用两个测试用例:英语单词词典(大多数计算机都有一个),以及以下情况(不可能有完美的字母(26个字母)),因此您必须找到一个包含重复的字母): abcdefghi defghijkl ijklmnop lmnopqrs opqrstuvw rstuvwxyz 您应随程序一起提供程序输出的样本。(由于使用了不同的单词列表,这对于不同的人可能会有所不同。) 胜利条件 这是一个限制复杂度的 代码高尔夫挑战。优胜者是在多项式时间内运行的最短程序(以字节为单位)。(针对不知道这意味着什么的人的摘要:如果将单词列表的大小加倍,则程序的速度应不超过一个恒定因子。但是,有问题的恒定因子可能与您一样大例如,将它变慢4倍或8倍是有效的,但是变小它不是单词列表长度的一个因素;它变慢的因素必须加以限制。)

4
带有弹跳线的XY框,在Z处有一个标记
长期潜伏在这里的第一次海报。 编写一个包含3个输入的程序:X,Y和Z。 X =跨(列) Y =下降(行) Z =位置标记 然后,程序应在X上和Y上向下打印可视网格。该网格可以由“ +”以外的任何字符组成。每个“位置”都有一个索引号,从坐标1处的1开始,从1开始计数,然后一直向下直到结束。 X和Y始终至少为3,Z永远不会大于X * Y。 Z将代表该位置,并在该位置以及左,右,上和下1个字符上打印为“ +”。例如: + +++ + 最后,如果+字符将截取边缘(最上,最左,最右和/或最下边缘),则+应当沿同一轴弹回并从另一侧溢出。 示例:输入= 5、5、13 ----- --+-- -+++- --+-- ----- 输入= 10、10、10 -------+++ ---------+ ---------+ ---------- ---------- ---------- ---------- ---------- ---------- ---------- 输入= 10、10、21 ---------- +--------- +++------- +--------- ---------- ---------- ---------- ---------- ---------- ---------- …

5
那是一座奇怪的山!
灵感来自显示一连串小山,上面有个奇数!通过@sygmei。 当您可以拥有一个巨大的山脉时,为什么还要拥有一连串的山脉? 编写一个使用输入数字并打印每个奇数直到输入数字的山峰的程序。 (其中“西南”表示directly below and to the left,“东南”表示directly below and to the right) 每个数字都将在其/西南方和\东南方。它从1顶部开始,下一个数字将位于a的/西南或a的东南\。下一个数字将出现在最接近顶部和最左侧的行中。 对于多位数字,只需将第一个数字放在正确的位置即可,紧随其后的是其他数字,并且只有第一个数字应位于此位置\并/从中出来。 高达1或2的山仅是: 1 / \ 最多3或4的山仅是: 1 / \ 3 / \ 对于25或26: 1 / \ 3 5 / \ / \ 7 9 11 / \ / \ / \ 13 15 17 19 …

5
有多少有效数字?
给定一个数字作为输入,请确定它具有多少个有效数字。该数字应作为字符串,因为您必须进行一些特殊的格式化。您很快就会明白我的意思(我认为)。 如果满足以下至少一项要求,则数字为签名。 非零数字始终有效。 两个有效数字之间的任何零都是有效的。 小数部分中的最终零或尾随零仅是有效的。 如果没有小数位,则所有数字都是有效的。 当只有零时,除最后一个零外的所有零都被视为前导零 输入值 数字的字符串或字符串数​​组。它的末尾可能有一个小数点,后面没有数字。它可能根本没有小数点。 输出量 有多少个签名。 例子 1.240 -> 4 0. -> 1 83900 -> 3 83900.0 -> 6 0.025 -> 2 0.0250 -> 3 2.5 -> 2 970. -> 3 0.00 -> 1
10 code-golf  string  math 

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.