Questions tagged «subsequence»

与更大序列中的序列有关的挑战

3
一个上升,另一个下降
介绍 在这个挑战中,您的任务是确定给定的数字序列是否可以分为两个子序列,其中一个在增加,另一个在减少。例如,考虑序列8 3 5 5 4 12 3。它可以分为两个子序列,如下所示: 3 5 5 12 8 4 3 第一行的子序列增加,第二行的子序列减少。此外,您应该有效地执行此任务。 输入项 您的输入是一个非空L的整数列表,范围在0到99999(含)之间。它以您的语言的本机格式给出,或仅由空格分隔。 输出量 如果L可以分解为递增和递减子序列,则输出为真值,否则为假值。子序列不必严格增加或减少,它们中的任何一个都可以是空的。 规则和奖金 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。此外,在此挑战中禁止强行使用:您的程序必须在输入长度内以多项式时间运行。 您不需要实际返回这两个子序列,但是这样做有-20%的奖金。为了使奖金更容易以静态类型的语言申领,可以为伪造的实例返回一对空列表。 测试用例 input -> None以错误输入和input -> inc dec真实输入的格式给出。这里只给出一对可能的子序列。可能还有更多。 [4,9,2,8,3,7,4,6,5] -> None [0,99999,23423,5252,27658,8671,43245,53900,22339] -> None [10,20,30,20,32,40,31,40,50] -> None [49,844,177,974,654,203,65,493,844,767,304,353,415,425,857,207,871,823,768,110,400,710,35,37,88,587,254,680,454,240,316,47,964,953,345,644,582,704,373,36,114,224,45,354,172,671,977,85,127,341,268,506,455,6,677,438,690,309,270,567,11,16,725,38,700,611,194,246,34,677,50,660,135,233,462,777,48,709,799,929,600,297,98,39,750,606,859,46,839,51,601,499,176,610,388,358,790,948,583,39] -> None [0,1,2,3,4] -> [0,1,2,3,4] [] [4,3,2,1,0] -> [] [4,3,2,1,0] …

19
使三角计划有效
三角性是Xcoder 先生开发的一种新的esolang ,其代码结构必须遵循非常特定的模式: 对于第nth行代码,其上必须完全2n-1有程序的字符。这将导致三角形/金字塔形,第一行仅包含一个字符,其余行以2为增量增加。 每行.的左侧和右侧都必须用s 填充,以使字符以其行为中心,并且所有行都应填充为相同的长度。如果l定义为程序中的行数,则程序中的每一行的长度必须为2 * l - 1 例如,左侧的程序有效,而右侧的程序无效: Valid | Invalid | ...A... | ABCDE ..BCD.. | FGH .EFGHI. | IJKLMN JKLMNOP | OPQRS 当布置在有效结构中时,该名称变得显而易见。 任务 您的任务是将单个行字符串作为代表Triangularity代码的输入,并将其输出转换为有效代码,如上所述。 I / O规格: 输入将仅包含范围内的字符 0x20 - 0x7e 输入的长度始终是一个平方数,因此可以很好地填充。 您必须将点用于输出填充,而不要使用其他东西。 您可以通过任何可接受的方法输入和输出。这是一个代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 input ---- output g ---- g PcSa ---- .P. …
19 code-golf  string  code-golf  combinatorics  code-golf  math  number  code-golf  matrix  code-golf  string  decision-problem  code-golf  internet  code-golf  number  number-theory  integer  expression-building  code-challenge  primes  cops-and-robbers  obfuscation  code-challenge  primes  cops-and-robbers  obfuscation  code-golf  string  balanced-string  code-golf  quine  code-generation  code-golf  matrix  code-golf  tips  c#  code-golf  ascii-art  code-golf  ascii-art  source-layout  code-golf  quine  source-layout  popularity-contest  language-design  code-golf  array-manipulation  subsequence  code-golf  matrix  math  code-challenge  game  graph-theory  atomic-code-golf  code-golf  number  integer  polynomials  equation  code-golf  array-manipulation  sorting 

25
重叠切片的按列求和
任务 给定的整数的列表大号和另一个整数小号中,目标是计算所有的列方向总和小号 -length(可能重叠的)的切片大号,而关于相对于它们的位置大号(见下文)。 定义 该小号 -length (重叠)切片列表的大号都的连续子序列(不包裹)大号是长度的小号。 为了使切片s相对于L 的位置相关,您可以想象构建一个“阶梯”,其中每个切片s i与i的位置都从开始偏移。 眼镜 s是一个大于1的整数,并且严格小于L的长度。 L将始终包含至少3个元素。 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下会禁止这些漏洞。这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 示例和测试用例 这是一个工作示例: [1, 2, 3, 4, 5, 6, 7, 8, 9], 3 [1, 2, 3] [2, 3, 4] [3, 4, 5] [4, 5, 6] [5, 6, 7] [6, 7, 8] [7, 8, 9] -------------------------------- (+) | …

7
二元展开式的不同非空子序列数
子序列是您可以通过删除任意数量的字符从另一个序列获得的任何序列。的不同的非空的子序列100是0,1,00,10,100。的不同的非空的子序列1010是0,1,00,01,10,11,010,100,101,110,1010。 写一个程序或函数给定一个正整数Ñ返回的二进制展开的不同的非空的子序列的数目Ñ。 例子:因为4是100二进制,所以我们看到上面有五个不同的非空子序列,所以f(4) = 5。从n = 1开始,序列开始: 1, 3, 2, 5, 6, 5, 3, 7, 10, 11, 9, 8, 9, 7, 4, 9, 14, 17, 15, 16, 19, 17, 12 但是,您的程序必须在任何现代机器上都能在n <2 50秒内工作。一些大的例子: f(1099511627775) = 40 f(1099511627776) = 81 f(911188917558917) = 728765543 f(109260951837875) = 447464738 f(43765644099) = 5941674

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 …
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象<=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

10
他们从哪里打来的?
在国际范围内拨打电话时,电话号码前会带有一个代码,以指示该号码所在的国家/地区。这些代码是前缀代码,这意味着任何代码都不是另一个前缀。 现在,今天早些时候,您错过了一个呼叫,并且您很好奇该呼叫可能来自何处。因此,您想查找调用代码。但是,作为前缀代码,您不太确定它的结尾,因此您决定编写一个程序以将调用代码与号码的其余部分分开。 输入值 作为输入,您将收到一个由digits组成的字符串0-9。前几位数字将是下面列出的国家/地区电话代码之一(这意味着前几位永远不会是0)。输入国家/地区电话代码后,其余输入将以任意顺序包含零个或多个数字- 不保证该数字是有效的电话号码。您的程序必须能够处理至少包含15位数字的输入 输出量 您的程序应输出唯一的国家/地区电话代码,该代码是该号码的前缀。有效输出如下: 1 20 211 212 213 216 218 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 …

1
通过子序列知道序列
介绍 假设您和您的朋友正在玩游戏。您的朋友想到一些特定的n位序列,而您的任务是通过向他们提问来推断序列。但是,您只能问的唯一类型的问题是“序列的最长公共子序列有多长时间?S”,其中S任何位序列在哪里。您需要的问题越少越好。 任务 您的任务是编写一个程序或函数,该程序或函数将一个正整数n和一个二进制R长度序列作为输入n。该序列可以是整数数组,字符串或您选择的其他某种合理类型。您的程序将输出序列R。 你的程序是不是允许访问序列R直接。在只有它允许做的事情R是给它输入到功能len_lcs与其他二进制序列一起S。该函数len_lcs(R, S)返回的最长公共子序列的长度R和S。这意味着最长的位序列在R和中都作为(不一定是连续的)子序列出现S。其输入len_lcs可以具有不同的长度。程序应R多次调用此函数以及其他序列,然后R根据该信息重建序列。 例 考虑输入n = 4和R = "1010"。首先,我们可以评估len_lcs(R, "110"),这给了3,因为"110"是最长公共子"1010"和"110"。然后我们知道这R是通过"110"在某个位置插入一位获得的。接下来,我们可能会尝试len_lcs(R, "0110")返回,3因为最长的公共子序列是"110"和"010",因此返回,这"0110"是不正确的。然后我们尝试len_lcs(R, "1010"),它返回4。现在我们知道了R == "1010",因此我们可以将该序列作为正确的输出返回。这需要3次调用len_lcs。 规则和计分 在此存储库中,您将找到一个名为的文件,该文件subsequence_data.txt包含100个长度在75到124之间的随机二进制序列。它们是通过取0到1之间的三个随机浮点并将其平均值作为a,然后翻转有a偏的硬币n时间而生成的。您的得分是这些序列上的平均调用次数len_lcs,得分越低越好。您的提交应记录通话次数。没有时间限制,只是您应在提交文件之前在文件上运行程序。 您的提交应具有确定性。允许使用PRNG,但它们必须使用今天的日期200116(或最接近的等效日期)作为随机种子。您无权针对这些特定测试用例优化提交。如果我怀疑这种情况正在发生,我将生成一个新批次。 这不是代码打高尔夫球,因此鼓励您编写可读的代码。罗塞塔码(Rosetta Code)上有最长的共同子序列页 ; 您可以使用它以len_lcs您选择的语言来实现。

4
一周中压缩的天数
输入星期几列表,则输出列表中最短的排序表示形式。 输入的格式是由一个或多个双字符子串的字符串Su(星期日), Mo(星期一), Tu(等), ,We,Th, Fr和Sa。输入不一定必须以排序的顺序给出。 要将输入转换为输出格式, 从星期天开始按星期几对输入进行排序(例如ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 如果不引起歧义,请将缩写词减少到一个字母。例如,之所以SuMoTuWe成为,SMTW是因为第一个S不可能在星期六,因为这样会使输出未排序(与T相同)。但是,ThFrSa应该成为ThFS,因为星期二和星期四都在星期五之前,并将其减小以TFS产生歧义。 如果输出为now MTWTF,则D改为输出(代表“ 工作日 s”)。同样,SS应该成为E一周结束。最后, SMTWTFS应该成为A对所有天。 输入和输出都必须是单个字符串。 由于这是code-golf,因此以字节为单位的最短代码为准。 测试用例: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu …

1
最大子串构造
在此挑战中,您通过了两件事: 字符串长度 N 字符串列表L,每个都有一个指定的点值。任何未传入的字符串的点值为0 您需要构造一个长度字符串N,以使所有子字符串点的总和尽可能大。 例如: 5 [("ABC", 3), ("DEF", 4), ("CDG", 2)] 应该输出 ABCDG 因为带有点(ABC和CDG)的两个子字符串总共有5个点,所以其他任何可能的构造都不能给出5个或更多点。 子字符串可以在字符串中多次使用,并且可以重叠。您可以假设这些点将始终为正,子字符串的长度将在1到N字符长之间,并且那个N > 0。如果最多有多个构造,请打印其中任何一个。 您的程序必须在合理的时间内运行(每个示例的时间不得超过一分钟): 1 [("A", 7), ("B", 4), ("C", 100)] => C 2 [("A", 2), ("B", 3), ("AB", 2)] => AB 2 [("A", 1), ("B", 2), ("CD", 3)] => BB 2 [("AD", 1), …

18
单个数字的最长重复子序列
挑战: 给定一个正整数,输出至少出现两次的最长的单个数字子序列,并且具有另一个数字的边界(或整数的开始/结尾)。 一个例子: 输入:7888885466662716666 单个数字的最长子序列为88888(7[88888]5466662716666),长度为5。但是,该子序列在整数中仅出现一次。 相反,输入的结果7888885466662716666应为6666(78888854[6666]271[6666]),因为它(至少)出现两次。 挑战规则: 子序列的长度优先于其发生的次数。(即输入8888858888866656665666,我们输出88888([88888]5[88888]66656665666;长度5,发生两次),而不是666(88888588888[666]5[666]5[666];长度3,发生三次)。 如果多个子序列的长度相等,则输出出现次数最大的子序列。即,具有输入3331113331119111,输出我们111(333[111]333[111]9[111];长度为3时,发生三次),而不是333([333]111[333]1119111;长度3为好,但发生两次) 如果多个子序列的出现次数和长度相等,则可以输出其中一个或全部(以任何顺序)。即,具有输入777333777333,可能的输出是:777; 333; [777, 333]; 或[333, 777]。 子序列必须具有其他数字的边界(或整数的开始/结尾)。即,输入122222233433结果为33(1222222[33]4[33];长度2,出现两次)而不是222(1[222][222]33433,长度3,两次出现都无效)。 这适用于所有计入出现次数计数器的数字。即,输入811774177781382结果为8([8]117741777[8]13[8]2;长度1,发生三次,三次)而不是77(811[77]41[77]781382/ 811[77]417[77]81382;长度2,发生两次,一次无效)或1(8[1][1]774[1]7778[1]382;长度1,发生四次,两次无效。 您可以假设输入内容不包含任何数字0(它将与匹配[1-9]+)。(这是为了避免不得不处理10002000应该输出的测试用例,默认情况下000大多数语言都将输出0。) 您可以假定输入将始终包含至少一个有效输出。 I / O都很灵活。可以是数字/字节/字符的列表/数组/流,也可以是字符串而不是单个整数。 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 另外,强烈建议为您的答案添加说明。 测试用例: Input: 7888885466662716666 / [7,8,8,8,8,8,5,4,6,6,6,6,2,7,1,6,6,6,6] Output: 6666 / [6,6,6,6] Input: 3331113331119111 / [3,3,3,1,1,1,3,3,3,1,1,1,9,1,1,1] Output: 111 / [1,1,1] Input: …

12
沙米尔的秘密分享
给定n(玩家数量),t(阈值)和s(秘密),输出n由Shamir的秘密共享算法生成的秘密。 算法 出于这一挑战的目的,将在GF(251)(size的有限域251,也称为整数mod 251)中进行计算。通常,将选择该字段,使其大小比的素数大得多n。为了简化挑战,字段大小将保持不变。251选择它是因为它是8位无符号整数可以表示的最大质数。 生成t-1(包括)范围内的随机整数[0, 250]。标明这些一个1通过一个T-1 。 构造一个t-1使用次多项式s为恒定值,并从步骤1中的功率的系数的随机整数x:F(X)= S + X *一个1 + X 2 * A 2 + ... + X 叔1 * a t-1。 (含)范围内(f(z) mod 251)每个输出。z[1, n] 参考实施 #!/usr/bin/env python from __future__ import print_function import random import sys # Shamir's Secret Sharing algorithm # Input is taken …
17 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 

20
反向奇数运行
启示。 任务 在2到2 15个非负整数的给定列表中对奇数进行反向运算。 例子 0 1 →交通 0 1 1 3 →交通 3 1 1 2 3 →交通 1 2 3 1 3 2 →交通 3 1 2 10 7 9 6 8 9 →交通 10 9 7 6 8 9 23 12 32 23 25 27 →交通 23 …

20
贡献最大的行
给定一个非负整数的非空矩阵,请回答哪些唯一行对矩阵中元素总数的贡献最大。 通过任何合理的指示来回答,例如,唯一行的出现顺序(或排序顺序)的掩码,或这些行的索引(从零或一开始的索引),或由行组成的子矩阵(以任何顺序)或某些一种字典构造……–但要解释一下! 例子 [[1,2,3],[2,0,4],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]: 唯一的行是[1,2,3],,[2,0,4]并且[6,3,0]每次出现时各自分别贡献6、6和9。但是,它们分别出现一次,三次和两次,因此它们各自的出现对总数(42)的贡献分别为6、18和18,因此后两行是贡献最大的。因此,有效的答案是: [false,true,true] 上面或 实际行的 外观/排序顺序或 [1,2]/ [2,3]基于零/一的索引的 掩码⋮ [[2,0,4],[6,3,0]] [[1,2],[3,1],[2,3],[1,2],[3,1],[2,3],[1,2]] [false,false,true](出现顺序)/ [false,true,false](排序次序) [2]/ [3](出现顺序)/ [1]/ [2](排序次序) [[2,3]] ⋮

24
没有匹配的连续对的ID生成器
给定2个输入(m = 最小起始id,n = id的数量),生成从> = m开始的id的顺序列表,该列表由数字0-9组成,其中没有2个连续的数字相同,例如1232是好吧,1233不是(彼此相邻包含2'3')。 例 对于m = 985,n = 6,下面显示了将生成/跳过的ID ... 985 - ok, 1st 986 - ok, 2nd 987 - ok, 3rd # skip 0988 (contains '88') 989 - ok, 4th # Skip 099x (contains '99') # Skip 100x (contains '00') 1010 - ok, 5th # …

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.