Questions tagged «string»

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

30
查找列表的“展开大小”
让我们通过以下规则定义u嵌套列表l(仅包含列表)的“展开大小”功能: 如果l为空,u(l)则为1。 如果l为非空,u(l)则等于中每个元素的展开大小的总和l。 您的任务是编写一个将列表作为输入并输出(或返回)列表未包装大小的程序(或函数)。 测试用例: [] -> 1 [[[]],[]] -> 4 [[[]],[[[[]],[]]],[[[]],[[[[]],[[],[[]]]]]]] -> 19 [[[[]]]] -> 4 这是代码高尔夫球,因此最短的程序(以字节为单位)获胜。

3
音位错误
性格 我们将这些Unicode字符称为英语IPA辅音: bdfhjklmnprstvwzðŋɡʃʒθ 我们将这些Unicode字符称为 英语IPA元音: aeiouæɑɔəɛɜɪʊʌː (是的,ː这只是长元音标记,但出于此挑战的目的,请将其视为元音。) 最后,这些是主要和次要压力标记: ˈˌ 注意,ɡ(U + 0261)不是小写的g,主应力标记ˈ(U + 02C8)不是撇号,并且ː(U + 02D0)不是冒号。 你的任务 给出一个单词,将元音堆叠在跟随的辅音之上,并将重音标记放置在其跟随的辅音下方。(正如问题标题所暗示的,这样的书写系统将辅音元音序列作为一个单元打包在一起,称为abugida。)给定输入ˈbætəlʃɪp,产生输出: æə ɪ btlʃp ˈ 甲字被保证是声母,韵母和应力标记的字符串,如上面所定义。永远不会有连续的重音标记,它们将始终放置在单词的开头和/或辅音之前。 测试用例 可能有连续的元音。例如,kənˌɡrætjʊˈleɪʃən变为 ɪ ə æ ʊeə knɡrtjlʃn ˌ ˈ 如果一个词以元音开头,打印在“基线”与辅音:əˈpiːl变 ː i əpl ˈ 一个测试用例的初始,强调元音:ˈælbəˌtrɔs变 ə ɔ ælbtrs ˈ ˌ 一句话:ˌsuːpərˌkaləˌfrædʒəˌlɪstɪˌkɛkspiːæləˈdoʊʃəs变成 æ ː ː ʊ uə aə …

5
A047841:自传编号
定义 这是描述数字的过程: 对于数字中从0到的每个9数字: 写下该数字的频率,然后写下该数字。 例如,对于数字10213223: 有1发生0, 2出现了1, 3出现了2, 2发生3。 因此,描述的数字10213223是10213223(10从第一个属性,21从第二个属性,等等)。 注意,数字的出现次数可以大于9。 任务 您将打印/输出所有描述自己的数字。 眼镜 除了允许您对输出进行硬编码或将与输出有关的信息存储在程序中之外,存在标准漏洞。 输出中的数字可以任意顺序。 输出中的数字允许重复。 如果选择打印而不是输出,则可以使用任何分隔符。 你是允许的,如果你选择要打印的,而不是输出到前缀和/或后缀输出。 分隔符,前缀和后缀不得包含任何数字(U + 0030至U + 0039)。 解决方案必须在一天内计算。 全部列表(109个条目) 22 10213223 10311233 10313314 10313315 10313316 10313317 10313318 10313319 21322314 21322315 21322316 21322317 21322318 21322319 31123314 31123315 31123316 31123317 31123318 31123319 31331415 31331416 31331417 …

30
输出字符串的累积斜率
挑战 给定一个字符串,例如Hello World!,将其分解为字符值:72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33。 然后计算每对连续字符之间的差:29, 7, 0, 3, -79, 55, 24, 3, -6, -8, -67。 最后,对它们求和并打印最终结果:-39。 规则 适用标准漏洞 请勿使用执行此确切任务的预制函数 鼓励创意解决方案 玩得开心 这被标记为code-golf,以字节为单位的最短答案将获胜,但不会被选择。

2
解释基普尔!
介绍 Kipple是Rune Berg于2003年3月发明的基于堆栈的深奥编程语言。 Kipple有27个堆栈,4个运算符和一个控制结构。 堆栈 堆栈被命名为a- z并包含32位带符号整数。还有一个特殊的堆栈,@使输出数字更加方便。当将数字压入时@,实际上将压入该数字的ASCII值。(例如,如果您将12推到@,它将推49,然后推50。@) i在执行程序之前,将输入压入输入堆栈。解释器将i在执行之前要求存储值。执行完成后,输出堆栈上的所有内容o都会弹出以ASCII字符形式输出。由于这是Kipple唯一的IO机制,因此无法与Kipple程序进行交互。 经营者 操作数可以是堆栈标识符或带符号的32位整数。 推送:>或< 语法:Operand>StackIndentifier或StackIndentifier<Operand Push运算符将操作数向左移并将其推入指定的堆栈。例如,12>a将值12推入stack a。a>b将从堆栈中弹出最高值a并将其推入堆栈b。弹出空堆栈总是返回0 a<b相当于b>a。a<b>c从弹出最高值,b并同时推入c和a。 加: + 句法: StackIndentifier+Operand Add运算符将堆栈上最顶层项目和操作数之和压入堆栈。如果操作数是堆栈,则从中弹出值。例如,如果堆栈的最高值为a1,a+2则将3压入堆栈。如果a为空,a+2则将2推入。如果堆叠的最值a和b是1和2,然后a+b将从栈中弹出的值2 b和3推入堆栈a。 减去: - 句法: StackIndentifier-Operand 减法运算符的工作方式与加法运算符完全相同,只是它减去而不是加法。 明确: ? 句法: StackIndentifier? 如果最上面的项目为0,则Clear运算符将清空堆栈。 解释器将忽略操作符旁边不存在的所有内容,因此以下程序将起作用:a+2 this will be ignored c<i。但是,添加注释的正确方法是使用#字符。#执行前,a 和行尾字符之间的所有内容都将被删除。ASCII字符#10在Kipple中定义为行尾。 操作数可以由两个运算符共享,例如a>b c>b c?可以写为a>b<c?。 该程序1>a<2 a+a将导致a包含值[1 4](从下到上),而不是[1 3]。对于-操作员也是如此。 控制结构 Kipple中只有一种控制结构:循环。 句法: (StackIndentifier code …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

30
到处都是蛇
挑战 挑战很简单:打印一条蛇。 您将获得蛇的长度作为输入。 长度为2的蛇看起来像这样: ==(:)- 长度为7的蛇看起来像这样: =======(:)- 换句话说,一条蛇的长度等于头部前有多少等号。 用法 假设我做了一个C ++实现并将其编译为./getsnake。 我可以这样运行: $ ./getsnake 10 ==========(:)- 澄清说明 不允许出现标准漏洞。 您可以以任何可接受的方式获取输入和输出。 您可以假设所有给定的输入均为正整数。 您可以编写函数而不是常规程序。

1
有多少个正方形?
这种挑战是由经常漫游在Facebook上一样,看起来画面灵感此。除了我们的基本广场看起来像这样: ┌─┬───┬─┐ ├─┼─┬─┼─┤ ├─┼─┴─┼─┤ ├─┼─┬─┼─┤ └─┴─┴─┴─┘ 该正方形由n x m1x1正方形组成,您必须计算该正方形内可以容纳多少个子正方形(1x1、2x2、3x3、4x4、5x5等)。正方形可能会丢失一些网格线(例如上例),也可能像下面的例子中那样完整。这意味着数学分析是没有可能(据我所知)。 输入: n建立正方形的输入的线数(); 由以下字符组成的正方形:─ ┐ ┌ └ ┴ ┘ ┬ ├ ┤ ┼ |跨n输入行。 输出: 可以容纳在输入正方形内的任何大小的正方形数量(我们在这里只需要一个数字,而每个大小都不需要一个数字)。 获奖标准: 最小的答案(字节数)获胜。 测试用例: 在: 5 ┌─┬─┬─┬─┐ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ ├─┼─┼─┼─┤ └─┴─┴─┴─┘ 出: 30 在: 3 ┌─┬─┐ ├─┼─┤ └─┴─┘ 出: 5 在: 5 ┌─┬─┐ ├─┴─┤ ├───┤ ├─┬─┤ └─┴─┘ …

6
我的琴弦兼容性如何?
介绍 考虑两个字符串阿和乙相同长度的大号和整数ķ≥0 。出于此挑战的目的,我们说如果存在长度为K的字符串C使得A是串联BCB的连续子字符串,则这些字符串是K兼容的。请注意,A是BAB的子字符串,因此A和B始终是L兼容的(但对于另一些K <L,也可能是K兼容的)。 输入值 您的输入是两个正长度相同的字符串,由大写和小写ASCII字母组成。 输出量 您的输出应为最低的非负整数K,以使输入与K兼容。 例 考虑输入 A = HHHHHH B = HHttHH 它们不兼容0,因为A不是的子字符串HHttHHHHttHH。它们也不是1兼容的,因为无论将哪个字母放在上,A都不是子字符串。但是,A 是的子字符串,其中C是两个字母的字符串。因此,输入是2兼容的,正确的输出是。HHttHH#HHttHH# HHttHHHHHHttHHHH2 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 兼容性条件是对称的,因此交换两个输入不应更改输出。 E G -> 1 E E -> 0 aB Bc -> 1 YY tY -> 1 abcd bcda -> 0 abcXd bxcda -> 4 Hello Hello -> …
12 code-golf  string 

3
哪些开关打开?
介绍 您正与您的同事坐在一起,共进午餐,并向他/她吹嘘您正在从事的最新和据说最大的项目。他/她厌倦了不断展现的自我主义情绪,给您一个挑战,以至于您闭嘴。身为一个利己,乐于运气的人,您当然会接受(因为您必须接受每一个挑战)。的挑战,因为他/她解释是,给定一个输入含有1个或多个的每个字符的文本块的!@#$^&*,输出在任何合理的格式的开关(ES)是/的坐标是“开”。 根据您的同事,开关是$,并且仅当满足以下条件中的至少一个时,开关才被分类为“打开”: 它被所有人包围^。所以... ^^^ ^$^ ^^^ 导致“打开”开关。 它被所有人包围&。所以... &&& &$& &&& 导致“打开”开关。 它至少在两侧完全被覆盖*。例如, *** &$& *** 导致“打开”开关,但是 &*& &$& &*& 不会,因为开关没有完全用*s 覆盖任何两侧。 周围的任何角落至少有1个!和/或1个@。如果这两个都不在角落,则不算在内。所以... !&& ^$@ @&! 由于至少有1个!和/或@至少有一个拐角(在上述情况下,有2个有效!s和1个有效@的3个拐角),因此会导致“接通”开关。和... &!& ^$@ ^!& 确实不,虽然有2 !秒和1 @中,由于没有一个是在任何角部。 1个或多个#是不上任何周围的开关侧,除非至少1 &包围开关。换句话说,如果#一个边上至少存在1 个,则除非存在一个,否则它会覆盖所有其他规则&。因此: #&* *$* !** 会导致“ on”开关(尽管#存在),因为&该开关周围有a ,并且遵循上述规则中的至少一项。但是,如果没有这样的感叹号: #&* *$* *** 开关将关闭,因为它不遵循以上规则中的至少一项。因此,即使开关可能被a #和a 包围,&除非遵循这些规则中的一个或多个规则,否则它仍将处于关闭状态。同样,要使开关有效,s与s 之间必须始终有> …
12 code-golf  string 

9
“逐步”字符串
您必须编写一个程序或函数来创建一个“阶梯式”字符串。这是您“逐步修饰”字符串的方法: 对于字符串中的每个字符: 如果字符是大写或小写的元音,不包括“ y”,则输出该字符,然后将字符串的其余部分向上移动一列。 如果字符是一个空格或制表符,其输出然后将字符串的其余部分向下一个科拉姆。 如果字符都不存在,则正常输出。 IO可以采用任何合理的格式。输入将不包含任何换行符。如果需要,可以删除任何尾随空格。 如果您选择返回字符串而不是打印字符串,还请包括一个简短的程序,该程序将打印您的字符串,以便使其可视化。这不是强制性的,也不会影响您的字节数。对于不了解高尔夫或esolangs(例如我)的用户来说,这只是一种方便,他们可以验证输出或修改代码。 样本IO: “ bcdef ghijkl”的输出: f jkl bcde ghi “编程难题和代码高尔夫球”的输出: lf -Go s nd de ng zzle A Co mmi Pu gra Pro “ Abcdefghijklmnopqrstuvwxyz”的输出: vwxyz pqrstu jklmno fghi bcde A 通常,这是代码高尔夫球,因此以字节为单位的最短答案会获胜。
12 code-golf  string 

2
单词搜索助手
我一直在做词搜索最近,我认为这将是如此,如果所有的单词阅读更容易从左向右。但是重写所有行都需要很大的精力!因此,我正在邀请代码高尔夫球手提供帮助。 (免责声明:以上报道可能不太准确。) 您的代码将采用一个矩形网格,并在两个方向上输出通过它的所有线。 输出必须包含网格的所有8个旋转(基数和主对角线),从上到下,从左到右“读取”。(这意味着每个“行”都将重复-一次向前,一次向后。) 行分隔可以是空格或换行符。如果选择空格,则网格旋转分隔必须是换行符;否则,网格旋转分割必须是两个换行符。 输入示例(以字符,多行字符串或其他合理格式组成的数组) ABCDE FGHIJ KLMNO PQRST 输出示例(将第一个选项用于除法) ABCDE FGHIJ KLMNO PQRST E DJ CIO BHNT AGMS FLR KQ P EJOT DINS CHMR BGLQ AFKP T OS JNR EIMQ DHLP CGK BF A TSRQP ONMLK JIHGF EDBCA P QK RLF SMGA TNHB OIC JD E PKFA QLGB …

3
半反转二进制字符串
这是我的Puzzling.SE问题的后续问题:我问是否有一个函数f将布尔字符串映射到布尔字符串,以便所有输入字符串b的f(f(b))= reverse(b)。(通过reverse,我的意思是反转位顺序的函数。) 上面的链接包含一个很好的肯定答案,并有一个很好的f''证明,但是您可能想在看之前自己考虑一下问题。 用尽可能少的字节实现这种功能f。 您可以从STDIN读取输入,也可以采用函数参数。并将结果字符串写入STDOUT或将其返回。 无论哪种方式,您都可以使用两个不同字节的实际字符串或您选择的字符(例如0和1,或\x00和\x01),或使用true和falsy值的数组/列表。选择两个值并坚持使用。 单个应用f 的结果必须是二进制字符串本身:没有像b -> if b starts with 'x' then reverse(b[1:]) else 'x' + b... 这样的愚蠢答案。 你的功能应该是合计的 ; 特别是,输入可以是空字符串,也可以是一比特长,等等。字符串的长度没有上限。 它也应该是纯净的:在函数调用之间不要保留任何全局状态。输入字符串必须完全确定输出字符串。
12 code-golf  string 

4
帮助重新计算您的代表!
几个月前,我们在meta上进行了讨论,讨论如何提高因问题投票而获得的声誉。这是我们目前的投票信誉系统的基础:1 问题投票U值得5个声望。 回答投票u值得10个声誉。 问题或答案不满意d的人值得-2声望。 对于新系统,已经有许多不同的建议,但是当前最受欢迎的与上面的相同,但是问题投票的比例扩大到+10个代表。这项挑战是要计算出安装该系统后您将获得多少代表。 让我们来看一个例子。如果投票活动为UUUUuuuuUUUUUduuudUU,则在当前系统下,您的收入为121: U x 4 x 5 = 20 = 20 u x 4 x 10 = 40 = 60 U x 5 x 5 = 25 = 85 d x 1 x -2 = -2 = 83 u x 3 x 10 = 30 = …

4
所有适合字符串的数字
编写一个使用正整数N的程序或函数。输出所有可以使用数字(),小数点()和负号()精确写成N个字符的十进制数的列表。0123456789.- 例如,一些数字,这将是在N = 4输出列表是1337,3.14,.999,-789,-2.7,和-.09。 数字应以正常方式书写,但应尽可能短。这表示: 如果数字不是整数,则仅应包括小数点。 例如45.0,45.应该写成普通的45 -45.00 应该写成 -45 小数点左边不应有前导零。 03并003应为书面3,但30并300都很好,因为它们是 0.3并且00.3应该写成刚.3 -03 应该写成 -3 -0.3 应该写成 -.3 小数点右边不应有尾随零 .50并且.500应写为.5 900.090 应该写成 900.09 最后两个规则的例外是零本身,应始终将其写为plain0。 +请勿使用正号(),因为它们会不必要地加长数字。 另请注意,负号(-)不应用作减号。它只能作为小于零的数字的第一个字符出现。 格式化 数字输出列表的顺序无关紧要。它可以是上升,下降或完全混合。仅存在所有可以用N个字符写入的不同数字的问题。 列表可以使用空格,换行符,逗号或数字之间的其他某种形式的合理格式设置,只要条件保持一致即可。前括号和后括号(或类似的括号)都可以,但数字引号之类的东西却不是。(即,不要在输出中明显混淆字符串和整数/浮点数。) 例如,当N = 1时,一些有效输出将是: 0 1 2 3 4 5 6 7 8 9 [1, 2, 3, 4, 5, 6, 7, …

5
高效的科学计数法
前几天,我的化学老师向我们解释了科学记数法(使用小数并乘以十的幂可以更轻松地表达大数),这使我回到了几年前。在学习了基础知识之后,我们做了很多典型的数学问题,其中一些问题如下: 用科学计数法表示以下内容: a)50000000 b)120000000000000 c)90000000000000000000000000000000000000 d)pi ^ e ^ i ^ j ^ k ^ std :: vector ... z)200 ... 我想:“什么?我们被告知,科学记数法被用来提高书写效率,但是某些情况下根本没有效率!” 考虑数字 300 及其科学表示法: 3x10^2 什么,科学标记的版本实际上会占用更多空间?现在我们不能拥有它了吗?(屏幕空间是宝贵的。) 我们可以确定自己是否可以用科学计数法写数字更节省空间,或者... 任务 您的程序或函数应输入n任意大小的正数(取决于语言所支持的大小),并输出科学编号的数字。 但是,如果n在删除尾随零和尾随小数位后,原始数字显示的字符数少于或等于其科学标记版本的字符数,则必须输出该原始数字n。 您的代码必须尽可能短,因为输出也必须尽可能短。 技术指标 高效科学计数法定义如下: bx10^e b是输入数除以10的幂以得出的值1 <= b < 10。该数字必须删除所有结尾的零(如果需要,还包括小数点),但必须具有原始数字的精度(当然,要达到您语言中的小数点限制)。也就是说,90000变成9,13.500变成1.35,0.000675变成6.75等。如果该数字最终包含的小数位数超出了您的语言所能处理的范围,则应四舍五入到最大小数位数。 e是将十提高到的指数n = b x 10^e(请记住,如果n小于1 ,则此数字必须为负)。此数字不应有任何尾随零或小数点(主要是因为如果它不是整数,那是错误的...)。 字符x10^ 必须保留在b和之间的字符串中e。 测试用例 Input …
12 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.