Questions tagged «string»

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

30
!插入!n!b!e!t!w!e!n!
从这里发布。 这个问题高度“提炼”了这个问题。特别感谢@Akababa! 在此任务中,您应该在字符串的开头和每个字符之后插入一个感叹号。 规则 始终会有一个非空字符串输入。输入也将不包含选项卡。您可以假定输入仅包含不可扩展的ASCII可打印字符和换行符。 只要您的语言无法检测到换行符,输入内容就不会包含尾随的换行符。 这是一场代码高尔夫比赛;最短的答案应该会赢。 例子 4个换行符导致5个换行符分隔的感叹号。很难将其作为Markdown文本,因此改为声明。 1 2 3 4 5 6 129591 129012 129127 129582 0 产出 1!!2!!3!!4!!5!!6! !1!2!9!5!9!1!1!2!9!0!1!2!!1!2!9!1!2!7!!1!2!9!5!8!2! ! !0! asd afjoK ak:e kPrLd fOJOE; KFO KFkepjgop sgpaoj faj 产出 !!!!a!f!j!o!K!!a!k!:!e! !k!P!r!L!d! !!!!f!O!J!O!E!;! !!!!!K!F!O! !K!F!k!e!p!j!g!o!p!s!g!p!a!o!j!!!f!a!j! 一个只有一个字符的基本测试用例: 一种 产出 !一种! (自动完成!只是在开玩笑,没有这样的东西。)包含感叹号: !! !! !! !! !! …
24 code-golf  string 

18
发音排序™
我们都知道不同的花式排序算法,但是这些算法都没有以易于发音的方式为我们提供数字。为了解决这个问题,我建议使用VoiceSort™,这是对数字列表进行排序的最自然的方法。 发音 发出数字的正式规则(在此挑战中)是数字被一个一个地发音,并且结果字符串按字典顺序排序。例如,这意味着该数字845是发音的"eight four five",应进行相应的排序。 负数 负数是通过在单词前面加上字母来发音的"minus"。因此,-23发音为"minus two three"。请注意,这会导致负数最终出现在输出的中间,正好在以4(4)和9(9)开头的数字之间。 作为指导,ForeignSort™的正式词序为: 八 五 四 减去 九 一 七 六 三 二 零 那是, 8, 5, 4, -, 9, 1, 7, 6, 3, 2, 0 输入项 范围为的整数列表,最多包含100个元素。不允许输入为字符串列表。如果您的语言不支持输入为列表,则可以将输入作为单独的整数输入。[ - 999 ,999 ][-999,999][-999, 999] 输入将不包含任何无效数字或任何以0开头的数字(数字本身除外)。输入通常不会排序,可以按任何顺序给出。 输出量 相同的整数,以VoiceSort™顺序排列。请注意,仅应将数字转换为其发音以进行排序,输出不应包含任何字符串。 例子 对于示例,中间步骤(用括号括起来)仅用作指导,而不是输出的一部分。 [1, 2, 3] -> (['one', …

12
培养文化人
这个挑战是由文化模因(Men of Culture)引起的。 该模因涉及空白部分的原始标题, 啊,我知道你也是一个有文化的人。 使它看起来好像角色在说其他话。 您面临的挑战是编写一个程序,该程序在给定输入的情况下,说明如何将原始句子空白以实现输入字符串。 规则: 使用一个-字符表示一个空白字符。 您不得添加其他字母来获得输入字符串 您可以将字符串比较视为不区分大小写 您可能会忽略字符串比较中的空格 如果不可能进行替换,则输出一个伪造的值。 您也可以用替换多余的空格-,尽管不是必需的。 在可能有多个解决方案的地方,您可以输出其中任何一个。 测试用例: 基本: 模因示例1 Ah, I see you're a well. > Ah, I see you're a --- -- ------- -- well. 模因范例2 Ah, I see well. > Ah, I see ------ - --- -- ------- -- …
24 code-golf  string 

30
计数连续字符
给定一个仅包含字母的字符串,输出该单词包含的连续字母最长的长度,顺序无关紧要。示例算法可以对单词进行排序,删除重复项,然后输出最长运行时间的长度。 测试用例 watch -> 1 stars -> 3 antidisestablishmentarianism -> 3 backdoor -> 4 a -> 1 tutorials -> 4 例如,antidisestablishmentarianism包含字母abdehilmnstr。最长的行程是lmn和rst,长度均为3。 笔记 您可以将所有小写字母,所有大写字母或大小写混合的字母作为输入,但是大小写无法对有关该单词的信息进行编码(即,您不能将首n字母大写,n即最长的长度)。 这是代码高尔夫球,因此最短答案以字节为单位。

30
您必须构造ASCII定向塔!
从我的anagolf帖子中发布的Cross(注:可能包含扰流板,验尸)。 准确输出以下文本。 每行上可能还有其他尾随空格,以及尾随换行符。 以字节为单位的最短代码获胜。 !"! "#$#" #$%&%$# $%&'('&%$ %&'()*)('&% &'()*+,+*)('& '()*+,-.-,+*)(' ()*+,-./0/.-,+*)( )*+,-./01210/.-,+*) *+,-./012343210/.-,+* +,-./0123456543210/.-,+ ,-./01234567876543210/.-, -./0123456789:9876543210/.- ./0123456789:;<;:9876543210/. /0123456789:;<=>=<;:9876543210/ 0123456789:;<=>?@?>=<;:9876543210 123456789:;<=>?@ABA@?>=<;:987654321 23456789:;<=>?@ABCDCBA@?>=<;:98765432 3456789:;<=>?@ABCDEFEDCBA@?>=<;:9876543 456789:;<=>?@ABCDEFGHGFEDCBA@?>=<;:987654 56789:;<=>?@ABCDEFGHIJIHGFEDCBA@?>=<;:98765 6789:;<=>?@ABCDEFGHIJKLKJIHGFEDCBA@?>=<;:9876 789:;<=>?@ABCDEFGHIJKLMNMLKJIHGFEDCBA@?>=<;:987 89:;<=>?@ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA@?>=<;:98 9:;<=>?@ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA@?>=<;:9 :;<=>?@ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA@?>=<;: ;<=>?@ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA@?>=<; <=>?@ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA@?>=< =>?@ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA@?>= >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?> ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@ ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCB CDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDC DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFED EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFE FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGF GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHG HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIH IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJI JKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJ KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLK LMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONML MNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONM NOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPON …

14
解析包裹
感谢您在“ 标记我的邮件”挑战中的帮助,PPCG-Post已成功地在所有包裹上盖印了生成的条形码! 现在,该解码它们了。 在此挑战中,给定从“ 标记我的邮件”挑战生成的条形码,您的程序将对其解码并返回编码的整数。 但是要当心!条码可能上下颠倒... 4状态条形码 如果您错过了编码挑战,则需要了解我们正在谈论的条形码类型。4状态条形码是一行带有四个可能状态的条,每个状态代表以4为底的整数: | | Bar: | | | | | | Digit: 0 1 2 3 条形码以ASCII呈现,将占用三行文本,使用竖线(|)字符代表条形的一部分,并使用空格()代表空白部分。每个小节之间只有一个空格。条形码示例如下所示: | | | | | | | | | | | | | | | | | | | | | | | | | | | …

3
实施简化字距调整
介绍 字距调整是指调整文本字母之间的间距。例如,考虑Top用以下三个字形写的单词: ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... 我们可以用点填充字形之间的间隙并完成它,但是间隙看起来太宽了。相反,我们将字形滑动到左侧,以便它们几乎可以接触: #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... 看起来好多了!请注意,的条形图T在的左边框上方o。在此挑战中,您的任务是为此类矩形字形实现一个简单的字距调整程序。 字距调整过程 考虑具有.和#形状相同的两个矩形2D字符数组。在简单的字距调整过程中,我们首先将数组并排放置,中间放置一列.s。然后,我们将#右阵列中的每一个向左移动一步,直到#左右阵列中的s正交或对角相邻。字距调整的结果是引入相邻s 之前的步骤#。您的任务是实施此过程。 让我们举个例子: Inputs: ..### #.... #.... ..##. ...#. ...## ..### ....# Process: …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

6
给我建一些阶梯
弦楼梯 免责声明:这是我提出的第一个挑战。任何反馈都是欢迎的。如果重复,请指出。 这是沙盒帖子的链接。 目标 该挑战的目标是给定一个字符串和一个整数,将该字符串打印为该整数大小的块。如果一个单词的字符多于一个块的大小,请将其打印为降序的“阶梯”模式。 规则 上面提到的“阶梯模式”意味着,对于同一个单词的每个块,该块必须从其上一个块结束的位置开始准确地开始。如有疑问,请检查测试用例(或询问)。 如果一个单词被分成多个块,则后一个单词必须用足够数量的空格打印,也就是说,它必须与前一个单词的最低块完全隔开一个空格。检查测试用例(或要求)进行澄清。 您可以假设输入字符串仅包含可打印的ASCII字符。而且,它不会连续有多个空格。 您还可以假定整数将始终在[1,+∞)范围内。 允许尾随空格或换行符。 您可以对I / O 使用任何合理的方法。 适用标准漏洞。 这是代码高尔夫,因此最短的代码(每种语言以字节为单位)获胜。一个星期(或大约一个星期)后,我将接受总体上最短的答案。 测试用例 (String, Integer) => (Output) "This is a large string", 3 => Thi is a lar str s ge ing "This is an even larger string!", 2 => Th is an ev la …
24 code-golf  string 

30
查找数组中最长的单词
您面临的挑战是获取一个字符串数组并输出该数组中最长的字符串。因此对于 ["tiny", "small", "bigger", "biggest"] 输出将是biggest。 如果数组的两个元素的长度相同,则应选择在数组中最先出现的元素。这意味着如果数组看起来像这样: ["one", "two", "no"] 输出为one,但如果数组如下所示: ["two", "one", "no"] 输出是two。 因为这是code-golf,所以以字节为单位的最短代码获胜。

10
高效的机器人运动
免责声明:这个问题中讲的故事完全是虚构的,仅出于介绍目的而发明。 我的老板得到了一个新的玩具机器人,他要我帮忙编程。他希望能够输入简单的箭头说明使其移动。这些指令是:^(向前移动)<(向左转)和>(向右转)。但是,既然我已经对机器人进行了编程,他就需要其他功能。他希望我变换他输入的任何箭头序列,以使机器人能够有效地移动到所需位置,而不是让机器人按照指示的路径移动,而移动到所需的位置,该位置由如果走过输入的路径将会到达的位置指示可能。我呼吁您,PP&CG的成员,帮助我完成此任务。 你的任务: 编写程序或函数以将由箭头组成的字符串转换为字符串,该字符串将尽快到达输入所指示的位置。旋转所需的时间恰好是向后或向前移动的时间。 输入: 一串箭头,如上所述。如果您愿意,可以用其他字符代替箭头,但请务必在回答中包括您这样做的事实。所有测试用例均正常使用箭头。 输出: 一串箭头(或您的等效字符),这些箭头可以使机器人尽可能高效地到达所需的目的地。 测试用例: 请注意,提供的解决方案仅是可能性,其他解决方案可能是有效的。 >^<<^^>^^ -> ^^<^ ^^^^>^^^^ -> ^^^^>^^^^ >>>^^^^^^ -> <^^^^^^ >^>^>^>^ -> (empty string) ^<^^<^^<^^^^ -> >^^>^ 得分: 机械手的内存有限,因此您的程序必须具有最低的字节数。

6
Gif-Jif,Jif-Gif
经许可从@Downgoat失窃 这个挑战的重点是(不)解决有关“ gif”的发音的争论。 ” gif的发音有争议,虽然应该(应该)发音 JIF,它仍然普遍争议。 在本次挑战中,您将获得一组带有g或j的单词,代表该单词发音的声音。您还将得到一些文本,必须在其中纠正gif的不正确拼写。 因为这是互联网,每个人总是错的。改正(不常见)礼貌。 错误发音的一个例子是: 有只老鼠吃着卷饼的GIF gif的拼写错误?不能接受!必须立即更正此问题: 有只老鼠在罐子里吃着墨西哥玉米煎饼 我们完了吗?不,你还是错的。 你总是错的 这必须以另一种方式起作用: 在JIF猫戴着一只猫的帽子 必须纠正这种明显的拼写错误,我们将其更正为: 在gif中(如图所示),猫戴着猫的帽子 规则 输入是任意顺序的字符串(句子)和字符串数组(或任何合理的选择,例如逗号分隔的字符串) 您可以任意顺序使用g和j词。它们可以单独使用。 的每个实例gif中的句子(任何情况下)必须被替换jif (as in ___),其中___是均匀的随机选择的字与开始j 从字符串数组,反之亦然为jif与词语开头g。 只有一行字gif,并jif应及时更换(即“瞬间”不应该改变)。这些话没有错。 您可以确保数组中的至少一个单词以开头,g并且至少一个以开头j。 大小写必须保留(例如GiF-> JiF)。 您可以编写程序或函数 适用标准漏洞 我们需要(不)迅速解决辩论;以字节为单位的最短代码获胜 例子 输入和输出用单行分隔: graphic, jar, jam, gram I saw a jif of how to pronounce gif that showed …
24 code-golf  string 

10
将TIO答案转换为CMC答案
让我们一次做一些有用的事情。 给定来自在线试用代码提交的文本,请生成等效的“聊天迷你挑战”提交,其形式为 Language, N bytes: [`code`](URL) 或(如果提交是一个字节,TIO仅在需要时在第一行添加尾随) Language, 1 byte: [`code`](URL) 您可以假设提交 只有一行 不包含反引号(`) 没有前导空格 具有以下示例中所示的常规格式;代码行缩进了四个空格( ),而不是HTML标记(<pre><code>… </code></pre>),即没有尾随空格。 请注意,提交内容可能具有语法突出显示标签。请参阅最后一个示例。 您可以选择包括标题文本,即…url "Language - Try It Online"。 例子 给定 # [05AB1E], 1 byte Ô [Try it online!][TIO-j3v72bss] [05AB1E]: https://github.com/Adriandmen/05AB1E [TIO-j3v72bss]: https://tio.run/##MzBNTDJM/f//8JT//zNSgSAnJycfDAA "05AB1E – Try It Online" 返回 05AB1E, 1 byte: [`Ô`](https://tio.run/##MzBNTDJM/f//8JT//zNSgSAnJycfDAA) 要么 …

3
平衡支架
您的目标:给定一串方括号,输出将输入字符串转换为平衡了方括号的字符串所需的最小Damerau-Levenshtein距离。 输入项 输入的字符串将仅包含方括号,并且不包含其他字符。也就是说,它是中任何字符的组合(){}[]<>。您可以将输入作为字符串或字符数组。您不能对输入字符串做任何其他假设;它可能任意长(最大为您的语言支持的最大大小),它可能为空,方括号可能已经平衡,等等。 Damerau-Levenshtein距离 两个字符串之间的Damerau-Levenshtein距离是两个相邻字符的插入,删除,单字符替换和换位(交换)的最小数量。 输出量 输出应该是输入字符串和括号匹配的字符串之间的最小Damerau-Levenshtein距离。输出应为数字,而不是结果平衡的字符串。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套几层深。 [(){<><>[()]}<>()] <[{((()))}]> (感谢@DJMcMayhem的定义) 测试用例 Input Possible Balanced Output Empty Empty 0 [](){}<> [](){}<> 0 [(){}<> [(){}<>] 1 [(]) []() 1 [[[[[[[[ [][][][] 4 (](<>}[>(}>><(>(({}] ()(<>)[(<><>){}] 7 >]{])< []{()} 3 ([)}}>[ (){}<> 4 {<((<<][{{}>[<) <>(<<[]>{}>[]) 5 …

10
睡莲跳
在此挑战中,您需要模拟一只青蛙在睡莲上来回跳跃。池塘是无限大的,有成排的无限数量的睡莲,青蛙可以随意跳越多的睡莲。 这只青蛙喜欢来回 跳跃:向前跳跃后,他总是向后跳,反之亦然。 您会收到一个代表他跳跃的整数列表。您需要输出他的跳跃结果。 例如,假设您通过了[2,3,6,8,2]: 我们的青蛙从向前跳两个睡莲开始: _2 然后3个睡莲垫退回: 3__2 然后向前放6个睡莲: 3__2__6 8回: 8_3__2__6 然后最后,向前放2个睡莲(注意2个如何覆盖3个): 8_2__2__6 更明确地说:您的输入是一个数字数组S,需要S[K]在position处输出S[K] - S[K-1] + S[K-2] - S[K-3]...。 如果要在某个位置打印多个数字,请仅打印索引最高的数字。 你要使用_某一特定位置是空的 如果一个数字有多个数字,则不会占用多个位置。(换句话说,一个位置可以包含多个字符) 您可以假定列表是非空的,并且所有整数都大于0。 测试用例: 5 ____5 2,2 2_2 4,3,2,1 3124 5,3,2,1 _3125 2,3,6,8,2 8_2__2__6 10,3,12,4,1,12,16 ___12__3__10____41__1216 100,4,7,2,2 _______________________________________________________________________________________________4___1002_2 这是一个代码高尔夫球,因此请使用尽可能少的字符回答!
24 code-golf  string 

2
编写事件令牌发布器
背景 事件是一种非常不常见的编程语言,它的令牌列表不是预先确定的,而是从输入中推断出来的。这样,对事件程序进行标记可能会非常困难,尤其是如果您想高效地这样做。这项任务是您自己做的。 任务 您的程序将被提供一个字符串作为输入。这是Incident用于标记它的算法: 完全以三种方式识别作为输入的子字符串出现的所有字符串(即,该字符串在输入中恰好出现了三个)。 丢弃所有这些字符串中的任何一个,这些字符串是另一个此类字符串的子字符串(例如,对于input ababab,剩下的唯一字符串将是ab,not a或b,因为a和b都是的子字符串ab)。 丢弃输入中重叠的所有字符串。(例如,aaaa正好包含的三个副本aa,但是这些副本在第二个和第三个字符处重叠,因此将被丢弃。同样,在中abababa,存在的三个副本ab和的三个副本ba,但第二个至第六个字符分别位于的重叠ab和ba,这样既ab和ba将被丢弃)。 此时剩下的任何字符串都是程序使用的标记。将原始输入标记为这些标记的序列(由于上一步中的丢弃,只有一种方法可以做到)。输入中不属于任何标记的任何字符都将被视为注释并被丢弃。 您的程序必须将字符串作为输入,并返回该字符串的相应标记化(标记列表,每个标记均表示为字符串)作为输出。此外,这必须至少适度地有效地完成;具体来说,程序必须在二次时间(“ O(n²)”)或更短的时间内运行。(顺便提一下,几乎肯定有可能比平方更快,但这不是最快算法,因此可以随意使用最复杂的算法,找到适合复杂度范围的算法。) 澄清说明 尽管理论上事件程序可以包含256个八位字节中的任何一个,但出于此挑战的目的,您的程序只能处理由可打印ASCII(包括空格),换行符和制表符组成的输入,这是可以接受的。(所有已知的突发事件程序都将自己限制在此子集中)。请注意,空格/换行符/制表符不是特殊的,可以出现在标记的中间。事件将所有256个八位位组视为不透明。 “二次时间”的定义是“如果输入的大小加倍,则程序将以不超过常数加4的速度慢运行”,即,如果t(x)是程序花费的最长时间。处理一个大小为x的输入,则必须有一个常数k,使得所有x的t(2 x)<4 t(x)+ k。请记住,比较字符串所花费的时间与字符串的长度成正比。 如果以具有无限内存并使用无界整数的语言(可能是假设的)变体运行,则从理论上讲,您的程序应该能够处理任何长度的输入程序(如果在实践中由于以下原因而无法达到此目标,则可以:语言的整数或内存实际上是有限的)。您可能会假设(出于计算复杂度的目的)可以在恒定时间内比较不大于输入长度的整数(尽管请记住,如果使用较大的值,例如由于将输入转换为整数)整数),它们将花费一定的时间与它们所拥有的位数成正比。 您可以使用适合复杂性范围的任何算法,即使它没有遵循与上面发布的算法相同的步骤,只要它能产生相同的结果即可。 这个难题是关于标记输入,而不是真正格式化输出。如果以您的语言输出列表的最自然的方式是模棱两可的格式(例如,当字符串包含文字换行符或字符串之间没有定界符时,则用换行符分隔),请不必担心输出结果最终会模棱两可( (只要列表是实际构建的)。您可能需要制作第二个版本的提交文件,以产生明确的输出,以帮助测试,但是原始版本是计分的版本。 测试用例 对于以下输入字符串: aaabcbcbcdefdfefedghijghighjkllkklmmmmonono-nonppqpq-pqprsrsrstststuvuvu 您的程序应产生以下输出列表: a a a bc bc bc d e f d f e f e d gh gh gh k l l k k l …

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.