Questions tagged «string»

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

9
对字符串取消括号
给定正确括号化的字符串作为输入,输出匹配括号内(或所有括号外)的所有非空子字符串的列表,并删除嵌套括号。每个子字符串应为完全相同的匹配括号中的字符序列。子串应按深度顺序列出,而相同深度的子串应按它们在字符串中出现的顺序列出。假定输入总是正确地加上括号。 您可以假定输入仅包含小写的ASCII字母和括号。 您的答案应该是一个函数,当给定一个字符串时,它返回一个字符串列表。 例子: 'a(b)c(d)e' -> ['ace', 'b', 'd'] 'a(b(c)d)e' -> ['ae', 'bd', 'c'] 'a((((b))))' -> ['a', 'b'] 'a()b' -> ['ab'] '' -> [] 'a' -> ['a'] '(((a(b)c(d)e)f)g)h' -> ['h', 'g', 'f', 'ace', 'b', 'd'] 'ab(c(((d)ef()g)h()(i)j)kl)()' -> ['ab', 'ckl', 'hj', 'efg', 'i', 'd'] 最少的字节数获胜。

30
我的名字是官方的吗?
介绍 正如ToonAlfrink所说:“我认为这里没有足够的简单问题供初学者尝试!” 因此任务非常简单。给定一个字符串,无论名称是否为正式名称,都输出一个true或false值。 如果名称是单个标题大小写的单词,则该名称为“正式”,即: 如果第一个字母大写(不是官方:adnan) 如果其他字母不大写(不是官方:AdNaN) 如果名称中不包含任何非字母字符(不是官方名称:Adnan123,,Adnan!) 如果名称仅由一个单词组成(不是官方名称:Adn an,Adn An) 如果名称包含多个字符(不是官方名称A:) 规则 您可以提供功能或程序 这是代码高尔夫球,因此以最少的字节提交为准! 注意:为简化起见,在此挑战中,像Mary-Ann这样的名字不是官方的。 假设名称中没有前导空格。 假设名称中仅使用可打印的ASCII字符(32-126) 测试用例 Input: Adnan Output: True Input: adnan Output: False Input: AdnaN Output: False Input: Adnan123 Output: False Input: Adnan Adnan Output: False Input: A Output: False Input: Mary-Ann Output: False 排行榜 显示代码段 /* …
25 code-golf  string 

7
跟踪清单到时间表
介绍 当有人将您喜欢的相册上传到YouTube时,您是否不讨厌它,但是说明中仅包含曲目列表?像这样: 1. Everything in Its Right Place - 4:11 2. Kid A - 4:44 3. The National Anthem - 5:50 4. How to Disappear Completely - 5:55 5. Treefingers - 3:42 6. Optimistic - 5:16 7. In Limbo - 3:31 8. Idioteque - 5:09 9. Morning Bell - 4:29 …
25 code-golf  string  date 

12
FizzBu​​zz-ish字符串匹配器
假设您有一个像这样的字符串: abaabbbbbaabba 计算指定字符在输入字符串中出现的次数,但前提是该字符仅连续出现一次。例如,如果字符是a, abaabbbbbaabba ^ x x ^ 总数为2(aa因为a连续出现两次,所以不会计数)。 这与FizzBu​​zz有什么关系? 如果字符连续出现3次(或3的倍数),或连续出现5次(或5的倍数),则计数器递减。如果它是3 倍和 5倍的倍数,则计数器仍会递增。请记住,如果字符仅连续出现一次,则计数器也会增加;如果字符连续出现其他次数,则计数器将被忽略(上述情况除外)。 回顾一下,如果要匹配的字符串是a, input counter (explanation) a 1 (single occurence) aaa -1(multiple of 3) aaaaa -1(multiple of 5) aaaaaaaaaaaaaaa 1 (multiple of 15) aa 0 (none of the above) aba 2 (two single instances) aaba 1 (one single occurence(+1) …
25 code-golf  string 

12
表情表情识别
编写一个程序,接受表情符号并输入表情符号是表情符号是开心还是悲伤。 程序接受字符串作为输入或参数,如果输入在快乐表情列表中,则应显示字符串“ happy”,如果输入在悲伤表情列表中,则应显示“ sad”。 您可以假定输入始终是有效的(开心或悲伤)表情符号,周围没有空格或制表符。 这是用空格分隔的开心表情列表: :-) :) :D :o) :] :3 :c) :> =] 8) =) :} :^) :-D 8-D 8D x-D xD X-D XD =-D =D =-3 =3 B^D (-: (: (o: [: <: [= (8 (= {: (^: 这是用空格分隔的悲伤表情符号列表: >:[ :-( :( :-c :c :-< :< :-[ …
25 code-golf  string 

21
星期一迷你高尔夫2:截断长文字
星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫挑战赛。 许多网络应用程序(尤其是社交媒体)会自动截断较长的文本,使其适合应用程序的格式。在这个挑战中,我们将创建一种算法来自动将一段文本修剪到一定长度。 挑战 挑战的目标是编写一个带有两个参数的程序或函数: T,要截断的文本。 L,返回的最大长度。 并返回T,被以下逻辑截断: 如果T的长度小于或等于L,则不需要截断。返回原始字符串。 将T截短为长度L -2。如果不包含空格或连字符,则将T截断为正L -3个字符,后跟省略号...。 否则,将结果的末尾修剪到最后一个空格或连字符。添加省略号...并返回结果。 细节 T和L可以采用任何顺序和任何格式。 您可以假设3 < L <2 31。 您不能使用U + 2026水平省略号…; 您必须使用三个句点。 输入将不会以空格或连字符开头。 输入将不包含除常规空格以外的任何空格。(没有选项卡,换行符等) 测试用例 输入: "This is some very long text." 25 "This-is-some-long-hyphen-separated-text." 33 "Programming Puzzles & Code Golf is a question and answer site for programming puzzle …
25 code-golf  string 

12
您的好友将坐在哪里?
您和一些伙伴正在打保龄球。总共有N个保龄球。但是,只有N -1个椅子可坐。解决方案很简单:现在轮到谁都没有椅子。然后,当他们的转弯结束时,他们坐在下一个人的椅子上。 让我们举个例子。说你是叫一个,你的四个朋友被命名为乙,Ç,d,和ē。每个玩家都按字母顺序移动,因此您必须先走。由于有5位玩家,因此只有4个席位。您的朋友按以下顺序坐在四个座位中: 中央商务区 你走了,是的,你罢工了!它的乙轮到下一个,让你在他坐在椅子上。现在看起来像这样: 中国教育发展学会 B去。天沟!然后他坐在C的位置,然后C转到下一弯。 珠子 然后C坐在D的椅子上。 BEAC 和d坐在ë的椅子 数模转换器 最后,E坐在您的椅子上。 BDEC 您会注意到,现在每个人的座位都被伪装了。您必须找出X转弯之后,谁会坐在哪里? 输入项 您的程序必须接受用户的两个输入,即字符串和数字。无需提示。该字符串将是1-51个字母字符(BZ和az),且没有重复。这代表您的朋友选择坐的顺序。不会有大写字母A,因为那是您,并且您始终优先。该数字将是您和您的朋友玩的回合总数(不是游戏)。该数字应为正数,大小应合理(小于1000)。 输出量 您的程序必须打印出X圈后您的朋友坐在的顺序,以及该轮到谁。因此,例如,如果X转向之后的订单是BEDGCAHF,而Z转向了,则您的程序必须完全打印以下内容: BEDGCAHF It is Z's turn. 以下是一些示例输入和输出。 input: E, 4 E It is A's turn. input: E, 5 A It is E's turn. input: Bb, 2 AB It is b's turn. input: …
25 code-golf  string 

7
基本的类Pyth语法检查器
Pyth是一种基于Python的高尔夫语言。它使用前缀表示法,每个命令具有不同的Arity(接受的参数数量)。 您的任务是为(不存在的)类Pyth语言Pith编写语法检查器。 Pith的语法 Pith只有8个单字符命令: 01234()" 01234每个都有对应的数字,因此期望后面有很多参数。例如, 400010 是一个正确的髓部程序,因为4后面四个参数0 0 0和10,是其中最后一个1接着一个参数0。为了可视化,我们可以看下面的树: R | 4 | ------------- | | | | 0 0 0 1 | 0 R根节点在哪里。考虑此问题的另一种方法是,每个数字都指相应节点在上面的树中具有的子代数。 这是另一个有效的Pith程序,具有多个基本命令: 210010 对应于 R | ------------- | | 2 1 | | --------- 0 | | 1 0 | 0 另一方面, 3120102100 这不是正确的Pith程序,因为开头3只有两个参数,可以通过查看下面的树来查看它们: R …

3
这个无限字符串中的游程在哪里?(找到CCCCCC!)
从字符串开始ABC,考虑将其后半部分重复附加到自身的结果(如果长度为奇数,则使用较大的一半)。 我们得到进展: ABC ABCBC ABCBCCBC ABCBCCBCCCBC ABCBCCBCCCBCBCCCBC etc... 让我们S代表由于此过程被永久重复而产生的结果无限字符串(或序列)。 目标 在此代码的挑战目标是找到的运行中第一次出现的指数C的中S。 一开始很容易:C首先在index 2,CCat 4,CCCat 7,CCCCat出现26,但CCCCC一直在index处27308!之后,我的记忆就用光了。 获胜者将是能够正确生成最多运行索引的提交(按顺序从开始C)。您可以使用任何种类的算法,但是如果您不使用基本的暴力手段,请务必对其进行解释。输入和输出可以采用任何易于理解的格式。 重要说明:我不正式知道是否S实际包含的所有运行C。这个问题是从“数学堆栈交换”上的一个问题中得出的,在该问题中作者也没有找到CCCCCC。我很好奇这里是否有人可以。(该问题又是基于我对该主题的原始问题。) 如果您可以证明并非所有的都可以C参加,S那么您将自动赢得比赛,因为该问题将不再有效。如果没有人能证明也找不到,CCCCCC那么获胜者将是可以得到指数最高下限的人CCCCCC(或者CCCCCC找到最大的未解决奔波的人)。 更新:了Humongous荣誉给isaacg和RES谁发现CCCCCC的2.124×10 ^ 519天文指数。以这样的速度,我无法想象找到CCCCCCC任何依靠蛮力的方法。干得好!

13
这是什么ROT?-解密ROT-n
以下是按频率顺序排列的英文字母的字母: e t a o i n s h r d l c u m w f g y p b v k j x q z 即,e是最常用的字母,z也是最不常用的字母。(来自Wikipedia的数据。) 您面临的挑战是获取一些ROT文本,例如: ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz 这是通过ROT-21(42的一半)“加密”的文本“ thisisaverysecretmessageverysecureandsafe”。使用上面的频率表,您的程序应该能够确定每个字符旋转了多少以及原始文本。 (如果您不熟悉ROT-n,则实际上是将每个字符移动n。例如,在ROT-2中,a -> c, b -> d, ..., x -> z, y -> a, z -> b。) 你怎么问?您必须使用的(非常幼稚的)算法是: 对于每个“ …

21
吉米多样性的场景
您可能知道,最近出现了多个 可爱的 吉米 挑战 。在这些挑战中,您受到了我们挚爱的朋友的杂技技巧的挑战。现在,我们为您带来了另一个挑战。今天,您将确定吉米斯的不同类型! 说明 吉米斯有三种变体:矮人,杂技演员和健美运动员。 This is dwarf Jimmy: o This is acrobat Jimmy: /o\ This is bodybuilder Jimmy: /-o-\ 这些吉米人都是好朋友,他们喜欢彼此站在同一条线上。给定一个Jimmy场景,您的任务是: o /o\ o /-o-\/-o-\ o /o\ 分别输出线上的矮人,杂技演员和健美运动员的数量。 挑战 如上例所示,以任何合理的形式将输入作为Jimmy场景。 输入字符串应为一行,并且可以包含三种类型的Jimmys和可选的空格。 该字符串不一定包含所有Jimmy变体或空白。 该字符串将不包含任何不在中的字符o/\ -。 吉米品种的任何组合都是可能的。这意味着相同或不同类型的吉米可以彼此相邻。您必须考虑到这一点。 前导和尾随空格是可选的,并且绝不是必需的-您的程序应考虑带有或不带有前导和/或尾随空格的字符串。 该字符串应仅包含有效的Jimmys和空格。例如,---///---不允许使用,因为它不是有效的Jimmy序列。 输出三个数字:场景中的矮人,杂技演员和健美运动员的数量(按顺序排列)。 这可能是以空格分隔的整数形式输出到控制台,也可能是函数作为某种容器(即数组类型)的返回值。 必须按照此规则上方最上方的提示对任何格式的输出进行排序。 适用标准规则和漏洞。 测试用例 /-o-\ /-o-\ o/o\ /-o-\ /-o-\ /-o-\ …

1
Auto BATCH高尔夫球手
我喜欢BATCH,尽管它由于缺乏非整数支持而令人震惊地缺乏功能性命令。为什么?因为这有效: SET var=SET %var% i=0 这将评估为: SET var=SET SET i=0 太棒了,不是吗?我以前在BATCH程序中使用过此技术,因为它可以节省字节! 您应该接受的挑战是,以这种方式“高尔夫” BATCH程序。您将通过包含SET会评估程序部分内容的语句来减少输入BATCH程序的字节大小,并且不得以其他任何方式修改程序。(例如,这不允许将变量名称重命名为更短的名称。请记住,BATCH(从变量开始)是不区分大小写的。)您的得分计算如下: score = # of characters in your program + 5*(net result bytes in test cases below) 我保留添加更多测试用例的权利,以阻止为测试用例优化程序的工作。 对于这一挑战的缘故,你的SET语句不能包含控制字符(|,<,>,%)或换行。除了在set语句内移动代码段外,您不能修改代码。(也就是说,您可能不会删除不必要的空格,将其替换EQU为==,等等。)我们假设行以结束\n。 测试用例 每个测试用例都在单独的代码块中,并且每个测试用例都是独立的,这意味着您仅应假设其中给出了内容。(即,如果您SET d=SET在一个程序中,该语句将不会自动提供给任何其他程序)。每个示例结果都可以在每个测试用例之后找到。测试用例之间有界线。 @回声关闭 SET增量= 10 :环 IF%increment%EQU 0 GOTO结束 回声%increment% SET / A%increment%-= 1 GOTO循环 :结束 出口 @回声关闭 …
25 string  metagolf 

25
魔术弹出数
有一个著名的棘手算法可以计算 32位无符号整数中的设置位数: int popcount(unsigned x) { x = (x & 0x55555555) + ((x >> 1) & 0x55555555); x = (x & 0x33333333) + ((x >> 2) & 0x33333333); x = (x & 0x0F0F0F0F) + ((x >> 4) & 0x0F0F0F0F); x = (x & 0x00FF00FF) + ((x >> 8) & 0x00FF00FF); …

4
不是不是!…还是?
介绍 实话实在很难理解,尤其是对于不熟悉实话的程序员。 创建口译员来帮助我们所有人在城市环境中生存是您的工作。 挑战 给定一个英语句子作为输入,创建一个程序或函数来确定句子的结果是肯定的还是否定的。 这句话包含0到2否定词。众所周知,双重否定会导致积极。因此,您的代码必须根据以下规则输出或返回true / falsey值: No negative words -> truthy One negative word -> falsey Two negative words -> truthy 否定词列表: no,not,none 以结尾的任何东西 n't never,neither,nor nobody,nothing,nowhere 有一种情况。每当句子以开头时No,,在确定结果时该词都不会被视为否定词(它确实计入否定词的数量,因此可以再增加一个)。 该句子将遵循基本的语法规则(大写,标点符号),并且仅包含可以从词典中找到的单词(幸运的是,这不会使问题标题无效)。该句子将不包含任何专有名词(对不起,博士,您不在了)。 测试用例 真相: Yes. It's noon. Hello, World! What is this? Ain't no thang! Never say never. No, it's noon …

21
我应该按几次?
我们都习惯了老式的电话键盘,对吗?供参考,如下所示: 给定一个仅包含小写ASCII字母和单个空格的字符串,您的任务是返回一个敲击次数,以便使用上面的电话键盘键入完整的字符串。 对于不熟悉此功能的人,以下是它的工作原理: 2例如,带有数字的键也记录有字符串abc。要键入a,必须按一次此键,因为b必须按两次,并且c必须按三次。 对于同一键上的连续字母,必须等待1秒钟再按一次。因此,如果要键入cb,则必须按3次c,等待一秒钟,然后按两次b,因此仍需点击5次。 除一个空格仅需按1 次外,其他所有键也是如此。另请注意,键7和上9有四个字母。应用相同的算法,唯一的区别是字母数。可以在上图(但小写)或以下列表中找到与每个键对应的字符串,其中包含您可能会收到的所有字符: "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz", " " 测试用例 输入->输出(说明) “”-> 0(不要轻敲) “ water”-> 8(“ w,a,t”分别需要敲击1次(在键9、2和8上),“ e”需要2次敲击(在3号键上),“ r”需要3次敲击(在7号键上) ),1 + 1 + 1 + 2 + 3 = 8) “肥皂”-> 9(4 + 3 + 1 + 1) “坎德拉”-> 13(3 + 1 …

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.