Questions tagged «string»

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

26
将n个长度为m的字符串转换为n个长度为m的字符串
编写一个程序,给定任何'n'个长度为'm'的字符串,并在以下条件下返回'm'个长度为'n'的字符串: 每个新字符串应包含与其他字符串相同索引的字母 例如,第一个输出字符串必须包含所有输入字符串的第一个字母,第二个输出字符串必须包含所有输入字符串的第二个字母,依此类推。 示例(字母下面的数字是字符串的索引): input: "car", "dog", "man", "yay" 012 012 012 012 output: "cdmy", "aoaa", "rgny" 0000 1111 2222 input: "money", "taken", "trust" 01234 01234 01234 output: "mtt", "oar", "nku", "ees", "ynt" 000 111 222 333 444 假设每次输入都是正确的 最短字节的代码获胜! 编辑: 由于有多种编程语言,并且每种语言都有很多可能的解决方案,因此我将针对每种编程语言和提供该语言的用户发布最短的解决方案。继续编码! 重新编辑: 多亏了用户Dennis,我为排行榜插入了一个代码段。 显示代码段 var QUESTION_ID=85255,OVERRIDE_USER=56179;function answersUrl(e){return"https://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"https://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 …
16 code-golf  string 

12
地理语言
Geobitsian语言是一种新的英语变体,其中一个单词被分成多个段,每个段必须以不同的字母开头。然后,每当这些起始字母之一出现在另一个字符串中时,它就会被其相应的整个段替换,从而保持大写。 此过程称为Geobitsizing。 例如“ Geobits ” 这个词可以被分解成geo bits废话诗。 Algy met a Bear A Bear met Algy The Bear was bulgy The bulge was Algy 将与它进行地理位 Algeoy met a Bitsear A Bitsear met Algeoy The Bitsear was bitsulgeoy The bitsulgeoe was Algeoy 因为每个g变成geo,每个G(尽管没有)变成Geo,每个b变成bits,每个B变成Bits。 注意,每个替换都是针对原始字符串执行的,而不是任何中间步骤。例如,如果geo已经gbo取而代之的是,b的产生不会与更换bits。 挑战 编写一个程序或函数,可以生成地球人的语言。 接受由小写字母(az)和空格组成的单行字符串。这将是用作Geobitsizing参数的单词,并用空格分隔各段。您可以假设: 细分不会为空。因此空格将不会彼此相邻,也不会位于字符串的开头或结尾。 每个段均以不同的字母开头。因此,不能超过26。 例如,你必须支持一些有效的分割字符串是geo bits,butt ner,alex,和do …
16 code-golf  string 

20
分解一个数字!
您的任务是使用以下格式分解数字。 这与基本转换类似,不同之处在于digits,您列出了values,而不是在基本列表中列出,这样列表就加到了输入上。 如果给定的基为n,则列表中的每个数字都必须采用的形式k*(n**m),其中0<=k<n和m在整个列表中都是唯一的。 眼镜 任何合理的输入/输出格式。您的程序/功能需要2个输入并输出一个列表。 输出列表可以是任何顺序。 0 可以排除或包含。 0允许领导。 允许内置。 测试用例 number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

10
创建落球图
介绍 对于以前从未听说过该游戏的人。您正在打一个需要尽可能长久生存的球。这是通过向左或向右移动,然后转到孔来完成的。由于地图向上移动,因此您需要向下移动才能生存更长的时间。如果您搜索图像,您可能知道我的意思是哪个游戏。 任务 给定正整数n,输出n层的下降球图。在各层之间,有4条换行符。层的宽度由25个下划线字符组成,其中一个孔的长度为5。这意味着总宽度等于30。在每个层之后随机地移动该宽度。有效层的示例是: _______________ __________ 孔也可以在边缘,就像该层像圆柱一样: _________________________ 请注意,有2个前导空格和3个尾随空格。制作单曲宽度5的孔。 测试用例 对于n = 4,这是有效的输出: _______________ __________ ______ ___________________ _______________________ __ _________________________ 注意:孔必须均匀分布。尾随和/或前导换行符是允许的。 这是代码高尔夫球,因此,字节数最少的提交将获胜!

5
解析嵌套的数字前导字符串
任务 通过S以下过程构造字符串: 从...开始 S是空字符串。 插入S格式为的字符串的某个位置ds,其中d是非零数字,并且s是d小写ASCII字母的字符串。我们说ds是一个组成部分的S。 转到步骤2或停止。 您的任务是采用这样的字符串作为输入,并按其前导数字的出现顺序将其组成部分输出为单个字符串。输出必须是单个字符串,并且成分之间不能有任何定界符(包括换行符)。您可以选择输入和输出字符串是否带有引号。请注意,输入和输出永远不会为空。 例 让我们用上述过程构造一个字符串。最终结果突出显示了成分的结构。 S = "" // Insert "3abc" S = "3abc" // Insert "2gh" after 'a' S = "3a2ghbc" // Insert "1x" before '3' S = "1x3a2ghbc" // Insert "3tty" after '3' S = "1x33ttya2ghbc" // Final result └┘│└┴┴┘│└┴┘││ └────┴───┴┘ 通过按数字的顺序将组成部分串联在一起来获得输出。在这种情况下,正确的输出是 "1x3abc3tty2gh" 规则和计分 …

10
对齐函数参数
给定代表函数定义的字符串输入,输出带有换行符和空格的字符串,以使函数的参数以换行符分隔并对齐。 输入字符串将遵循以下模式: 首先,它将以前缀开头,该前缀始终至少一个字符长,并且不包含任何字符,()。 (然后,括号()将标记参数列表的开始。 然后是零个或多个参数的列表。这些由字符串", "(逗号,然后是空格)分隔。所有参数均不包含任何字符,()。 圆括号())将标记参数列表的结尾。 最后,可以找到一个后缀,该后缀的长度为零个或更多,并且 可能包含字符,()。 输入字符串将仅由可打印的ASCII组成(这意味着它绝不会包含换行符)。 输出必须是: 前缀(逐字向下复制)和右括号。 参数列表,这次不是用", "逗号,换行符分隔,而是垂直对齐每个参数的第一个字符所需的空格。 封闭括号和后缀(如果存在)逐字记录。 由于这是code-golf,因此以字节为单位的最短代码将获胜。 测试用例(格式:单行输入,然后是输出,然后是双换行): def foo(bar, baz, quux): def foo(bar, baz, quux): int main() { int main() { fn f(a: i32, b: f64, c: String) -> (String, Vec<i32>) { fn f(a: i32, b: f64, c: String) -> …
16 code-golf  string 

30
过滤并添加
任务 任务很简单。给定一个包含数字(大写和小写字母)的非空字符串,输出剩余数字的总和。例如: a1wAD5qw45REs5Fw4eRQR33wqe4WE 过滤掉所有字母将导致: 1 5 45 5 4 33 4 这些数字的总和为1 + 5 + 45 + 5 + 4 + 33 + 4 = 97。因此输出将是97。 测试用例 a > 0 0 > 0 5 > 5 10 > 10 a0A > 0 1a1 > 2 11a1 > 12 4dasQWE65asAs5dAa5dWD > …

9
带字符串的基数转换
介绍 过去,我们在这里遇到了一些基本的转换挑战,但是设计用来处理任意长度数字(即足够长以至于它们溢出整数数据类型的数字)的设计并不多,其中大多数感到有些不足。复杂。我很好奇这样的基础代码更改如何获得成功。 挑战 用您选择的语言编写一个程序或函数,该程序或函数可以将一个基数的字符串转换为另一基数的字符串。输入应该是要转换的数字(字符串),从基数(以10为基数),以基数(以10为基数)和字符集(字符串)。输出应为转换后的数字(字符串)。 一些进一步的细节和规则如下: 要转换的数字将是一个非负整数(因为-它.可能在字符集中)。输出也将如此。 前导零(字符集中的第一个字符)应被修剪。如果结果为零,则应保留一个零数字。 支持的最小基本范围是2到95,由可打印的ASCII字符组成。 要转换的数字的输入,字符集和输出必须全部为字符串数据类型。基数必须是以10为底的整数数据类型(或整数浮点数)。 输入数字字符串的长度可能非常大。很难量化一个合理的最小值,但是期望它能够处理至少1000个字符,并在像样的机器上在不到10秒的时间内完成100个字符的输入(对于这种问题非常慷慨,但是我不想速度成为重点)。 您不能使用内置的基准变更功能。 字符集输入可以采用任何排列方式,而不仅仅是典型的0-9a-z ...等。 假设将仅使用有效输入。不用担心错误处理。 获胜者将由符合条件的最短代码确定。至少会在7个基准10天之内,或者是否/是否有足够的提交内容,来选择它们。如果出现平局,则运行速度更快的代码将是赢家。如果在速度/性能上足够接近,则较早出现的答案为准。 例子 这是您的代码应能够处理的一些输入和输出示例: F("1010101", 2, 10, "0123456789") > 85 F("0001010101", 2, 10, "0123456789") > 85 F("85", 10, 2, "0123456789") > 1010101 F("1010101", 10, 2, "0123456789") > 11110110100110110101 F("bababab", 2, 10, "abcdefghij") > if F("10", 3, 2, …

3
格式化单词列表
您面临的挑战是在多行中设置不超过给定字符数的单词列表格式,以使每行包含尽可能多的单词,而不必切除所有单词。 输入值 输入将是一个用空格分隔的单词列表,然后是一个至少为4的数字。 输出量 输出应该是按行分组的输入单词,以便没有一行包含比输入数字更多的字符。单词应按输入顺序输出。单词之间应以逗号分隔,然后以空格隔开,但在每行末尾则不需要空格。如果单词太长而无法容纳在一行中,则应在遵循其他规则的同时将其尽可能少地截断,并在末尾添加“ ...”。 测试用例 Input: foo bar baz qux 12 Output: foo, bar, baz, qux Input: foo bar baz qux 5 Output: foo, bar, baz, qux Input: strength dexterity constitution intelligence wisdom charisma 10 Output: strength, dexterity, consti..., intell..., wisdom, charisma Input: quas wex exort 4 Output: …
16 code-golf  string 

1
我可以住在这里吗?
在Terraria游戏中,游戏机制之一是建造房屋,以便NPC可以进入。有一套严格的规则来确定什么是有效房屋。以下是规则列表: 房屋的总面积必须至少为60平方米,但少于750平方米。此外,房屋的尺寸(包括外框)必须至少为以下尺寸之一: 5x12 6x10 7x9 8x8 9x7 10x6 12x5 15x4 为简单起见,您可以放心地假设:a)所有输入房屋将为矩形,并且b)房屋内将没有实心砖#。这是我们的12x6帧(以漂亮的ASCII绘制): ############ # # # # # # # # ############ 房子必须被背景墙覆盖。这些不是实心砖,而是三维空间中房子后面的墙。允许有孔,但任何孔都不能大于4x4。如果一行或一列中有5个或更多的空格字符,则该孔大于4x4,并且该房屋无效。也可以有多个孔,但必须至少有一个壁。 ############ #**********# #**********# #**********# #**********# ############ ############ #* * # #* * # #* * # #****** # ############ (Still acceptable since neither hole is larger than 4x4 …
16 code-golf  string  game  grid 

28
讲解Revu'a
其实不是没有灵感阿特巴希密码自回文也不由广义GEMATRIA计算器。 如果给定字符串š长度的Ñ,输出Revu'a序列,这是第一个字符小号,中前两个字符小号,...第一Ñ -2字符小号,第一Ñ -1的字符小号,整个小号。 该字符串将仅包含方向性强且范围在0x0000到0xFFFF之间的Unicode(所需的任何编码)字符。但是,不会出现方向控制字符。任何给定字符串中的所有字符将具有相同的方向性。 您可以数组符号的形式返回["t","te","tes","test"],以空格分隔的字符串"t te tes test",以多行文本的形式返回ttetestest(预格式化的数组)的形式返回Ť te 特斯 测试或类似的内容。前导,分隔和尾随空格的数量并不重要,尾随换行符也不重要。询问是否有疑问。 从右至左输入必须以正确的顺序产生从右至左输出: 输入:"נחמן" 输出:"נ נח נחמ נחמן"或נ נח נחמ נחמן 或["נ","נח","נחמ","נחמן"]。在无效的结果是"נחמן נחמ נח נ","ן מן חמן נחמן"和"נחמן חמן מן ן"。

4
基本挑战
这项挑战的灵感来自以下Oliver Sacks的报价: “ 11岁时,我可以说'我是钠'(元素11),而现在79岁时,我是黄金。”-奥利弗·萨克斯(Oliver Sacks) 我希望您在字符串中找到数字并将其替换为相应元素的符号。(1是H,2是He,3是Li,等等。)有一些规则要遵循: 一位和两位数将正常替换为其相应的元素。忽略数字开头的0。如果数字中只有0,请忽略它。例如1 01 10 0 00变成H H Ne 0 00 超过2位数字将分成2组。奇数个数字的末尾应有额外的一位数字。例如0153 5301 153,HI IH PLi由于该规则,您只需要知道1到99之间的元素 无论数字周围有什么字符,逗号都应被视为相同,逗号和小数点都不是数字的一部分。P90X 42,800 3.14159会成为PThX Mo,Hg0 Li.SiPF 输入/输出(I / O)示例: I: 32289216 O: GeNiUS I: J08017 5811 O: JOHN CeNa I: M18227 0592tt10r O: MArTiN BUttNer I: De072816 O: DeNNiS I: D088r1907085 …

1
给定长度列表和代表这些长度的字符串,它们匹配吗?
给定一个表示长度列表的模式,以及一个表示这些长度的字符串,它们匹配吗? 对于感兴趣的人来说,这等同于验证Nonogram的行或列是否正确。但是,我省略了与非图相关的所有语言,以使那些不熟悉这些谜题的人感到困惑。 输入值 两行数据,由换行符分隔。 第一行将是一个由空格分隔的整数列表,例如: 3 6 1 4 6 该行描述的填充模式的大小等于整数列表,并由第二行必须匹配的,未知长度,正长度的空白空间分隔。匹配的字符串的开头和结尾处也可能有空格。 第二行将是可能与第一行中的模式不匹配的行。它完全由#,x和_。这条线被保证为至少只要在第一行中的整数的总和,再加上不同整数的数目减1,并且可以更长。因此,在这种情况下,第二行保证至少为(3+6+1+4+6) + (5) - 1或24个字符长。这是与第一行中的模式匹配的示例24个字符行: ###_######_#_####_###### 符号的含义: # 这代表一个填充的盒子 x 这表示一个标记为“保证为空”的框 _ 这表示一个未知/未标记的框。 目标 这个想法是: 验证第二行可能是符合第一行模式的有效行。 ERROR如果未知空格不能用#或x匹配第一个,则必须打印明确的错误消息(选择方式由您决定;下面的示例编写,但不必是这5个字符)线。 打印已完全放置在行中,以空格分隔的整数的零索引索引。如果有歧义,请勿打印索引。 例子: Input: | Output: | Reason: -------------------------------------------------------------------------- 3 6 1 4 6 | 0 1 2 3 4 | This is …

3
ASCII L系统渲染器
背景 一个L-系统(或系统Lindenmayer)是平行重写系统,除其他外,可以很容易地用于模型分形。这个问题涉及确定性,上下文无关的L系统。它们由符号字母,初始公理字符串和将每个字母符号映射到新字符串的一组重写规则组成。规则并行应用于公理,生成一个新字符串。然后重复此过程。 例如,具有公理“ A”和规则A = ABA; B = BBB的系统生成字符串“ ABA”,“ ABABBBABA”,“ ABABBBABABBBBBBBBBBBBBABABBBABA”等字符串的序列。为简洁起见,我们没有明确提及定义L系统时的字母。此外,假定没有显式重写规则的任何符号都是不变的(即,符号A的默认规则为A = A)。 L系统可以使用乌龟图形的形式进行可视化。按照惯例,乌龟开始朝右。然后,通过重复其符号来绘制字符串:F表示“向前拉一个单位”,G表示“向前拉一个单位”,+表示“向左旋转一个角度单位”,而-表示“向右旋转一个角度单位”。单元”。字符串中的所有其他符号将被忽略。出于这个问题的目的,假定角度单位始终为90°。 任务 给定任何L系统的规范和多次迭代后,您的程序应使用箱形绘图字符输出结果字符串的ASCII渲染(如上所述)。 参数以空格分隔的字符串形式传递,该字符串包括公理,重写规则(作为等式的列表)和重写迭代次数。例如,输入“ FF = FGF; G = GGG 2”生成字符串“ FGFGGGFGF”,因此以适当的间距绘制四行。 L系统使用的符号可以是除空格和分号之外的任何ASCII字符。每个符号最多指定一个显式规则(默认重写规则是如上所述的身份映射)。 您可以假定输出将始终包含至少一个F。 输出应使用以下UNICODE框形图字符表示可视化效果:─(U + 2500),│(U + 2502),┌(U + 250C),┐(U + 2510),└(U + 2514) ,┘(U + 2518),├(U + 251C),┤(U + 2524),┬(U + 252C),┴(U + 2534),┼(U …

7
用打乱的钥匙打字
您的朋友不太擅长使用计算机,所以有人打扰他键盘上的字母(az)成为一个恶作剧。当他坐下来尝试在键盘上键入自己的名字时,他意识到字母被打乱了,要求您的帮助。 您很聪明,所以您知道,如果他键入他的名字,然后重复输入屏幕上出现的内容而不是他的名字,他最终将成功输入他的名字。您也很友善并重新排列了按键,但想知道要成功旋转几圈。 您的任务是编写给定字母改组的程序或函数,而朋友的名字将计算转数。 输入详细信息: 以方便您的语言的结构形式输入了两个字符串作为输入。 第一个字符串是按照旧字母的字母顺序列出的新小写字母的列表。(第一个字符位于的位置a,最后一个字符位于的位置z。)字符串中总是会发生一些变化。 第二个字符串是名称。它可以包含任何可打印的ascii字符,但是只有大写和小写字母字符会被打乱。这个名字本身可能不会被改组。 输出详细信息: 输出是单个整数,最小所需匝数。换行符是可选的。 例子: 输入:( 'abcfdeghijklmnopqrstuvwxyz' 'Mr. John Doe'更改了d,e,f个位置) 输出:( 3显示的名称是:Mr. John Fod=> Mr. John Eof=> Mr. John Doe) 输入: 'nopqrstuvwxyzabcdefghijklm' 'Mr. John Doe'(ROT13密码) 输出:( 2任何包含字母的输入名称都会2四舍五入以产生原始名称。) 输入: 'aebcdjfghiqklmnopzrstuvwxy' 'John Doe' 输出: 140 这是代码高尔夫球,因此最短的条目将获胜。

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.