Questions tagged «sorting»

此挑战旨在通过排序,排序或以其他方式组织一些数据集来解决。

24
排序乐队名称
挑战说明 你有许多乐队,每个都有一个名字录制了许多歌曲音乐库,如Queen,Aerosmith,Sunny Day Real Estate,The Strokes。当音频播放器按乐队名称按字母顺序显示您的音乐库时,通常会跳过该The部分,因为许多乐队名称都以开头The,从而更容易浏览媒体集。在此挑战中,给定一个字符串列表(数组),您需要以这种方式对其进行排序(即,省略The名称开头的单词)。您可以编写方法或完整的工作程序。 样本输入/输出 [Queen, Aerosmith, Sunny Day Real Estate, The Strokes] -> [Aerosmith, Queen, The Strokes, Sunny Day Real Estate] [The Ramones, The Cure, The Pixies, The Roots, The Animals, Enrique Iglesias] -> [The Animals, The Cure, Enrique Iglesias, The Pixies, The Ramones, The Roots] [The …

6
古西班牙字母顺序
在1994年之前,西班牙词典使用字母顺序排列,具有特殊性:有向图ll,ch被认为是单字母。ch立即跟进c,并ll立即跟进l。添加以西班牙语开头的字母ñ,n则顺序为: a, b, c, ch, d, e, f, g, h, i, j, k, l, ll, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z 自1994年以来ll,并ch被认为是(两个字母组l,l并且c,h分别地),并且因此按字母顺序相同的英文字母的例外ñ。 旧的命令肯定会更有趣。 挑战 输入零个或多个单词的列表,然后输出根据旧西班牙字母顺序排序的列表。排序是在单词之间(而不是单词中的字母之间)。也就是说,单词是原子的,并且输出将以可能不同的顺序包含相同的单词。 为了简化,我们不会考虑字母ñ,或重音的元音á,é,í,ó,ú,或大写字母。每个字都是一个或多个字符的序列,取值范围从ASCII 97(a)到ASCII 122(z)。 如果l连续超过两个字母,则应将它们从左到右分组。也就是说,lllis lland then l(不是land then ll)。 输入格式可以是:用空格,换行符或任何方便的字符分隔的单词。您可以选择是否将单词用引号引起来。单词列表或单词数组也是可以接受的。任何合理的格式均有效;只需在答案中说明即可。 以类似的方式,输出将是任何合理的格式(不一定与输入相同)。 打高尔夫,最短的胜利。 测试用例 在以下示例中,单词用空格分隔。第一行输入,第二行输出: llama coche …

30
排序整数列表
挑战 真的很简单,对数字列表进行排序。 细节 您必须按升序对数字列表进行排序,而不使用任何内置的排序函数/库/等(例如,list.sort()在Python中)。 输入/输出可以用您选择的任何方法完成,只要它是人类可读的即可。 一如既往,不允许出现标准漏洞。 以字节为单位的最短代码获胜。 您必须说明/列出您使用的排序方法(气泡,插入,选择等)。 输入将不包含重复项。 样本输入/输出 输入: 99,-2,53,4,67,55,23,43,88,-22,36,45 输出: -22,-2,4,23,36,43,45,53,55,67,88,99 注意:与“ 对数字列表排序”正好相反

5
用掉期和持续时间排序列表
考虑一个从1到N的整数的随机列表。您只想使用以下操作对其进行排序: 交换第一个和最后一个列表元素。(S) 弹出第一个元素并将其附加到列表的末尾。(P) 这总是可能的,因为任何列表都可以通过相邻元素的足够交换来排序。使用S和P可以交换任何相邻的元素,方法是调用P直到有问题的两个元素是列表中的第一和最后一个项目,然后调用S交换它们,然后再次调用P直到它们在原始索引中(​​现在已交换) )。 但是,就S和P操作的数量而言,此方法对于大多数列表而言不太可能是最佳方法。 挑战 编写一个程序或函数,将数字从1排列到N(N> 1)。它可以作为列表或字符串或任何方便的形式给出。它应该输出一个S和P序列,当从左到右应用该序列时将对排列进行排序。此序列不必最佳地短,但是最好短一些(请参阅评分)。 例 如果输入是[2, 1, 3]输出,则可能是SP因为 应用型,以[2, 1, 3]使得它[3, 1, 2], 和P应用于[3, 1, 2]使它[1, 2, 3],它被排序。 验证者 该堆栈片段可用于验证序列是否确实对列表进行了排序。该列表应带有方括号,并以逗号分隔。SP序列只是一个字符串“ S”和P“”。 <style>*{font-family:monospace}</style><script>function swap(list) {var tmp = list[0];list[0] = list[list.length - 1];list[list.length - 1] = tmp;}function pop(list) {list.push(list.shift())}function check() {var result = 'Sorted sucessfully.';var details = …

11
数字排序
在Unicode字符的凹处内,有一个(当前)63个字符的Unicode块,称为“数字形式”,该字符块由具有数值的字符组成,例如罗马数字Ⅻ,↉或like之类的小数部分,或诸如↊(10)或ↈ(100000)。 您的任务是编写一个程序或函数,当在此块中获得一个分配的Unicode字符列表时,该列表将按每个字符的数值排序。 字符和值的(可排序的)列表可以在Wikipedia Page上找到。 为了自成一体,这是代码点及其值的列表: Hex Char Value 0x00BC: ¼ = 1/4 or 0.25 0x00BD: ½ = 1/2 or 0.5 0x00BE: ¾ = 3/4 or 0.75 0x2150: ⅐ = 1/7 or 0.142857 0x2151: ⅑ = 1/9 or 0.111111 0x2152: ⅒ = 1/10 or 0.1 0x2153: ⅓ = 1/3 or 0.333333 …

30
帮我洗衣服
救命!我的全自动黑暗照明分离器V3001.01坏了!:( 指导方针 任务 编写一个程序,该程序将以任意数量的字符串(字母L或字母D(代表亮或暗))输入一个数组(或某些语言的列表),并输出包含两个数组的数组,一个与所有的L和一个与所有的D。 规则 这是代码高尔夫,所以最短的答案以字节为单位 输入只会包含大写字母 输出中的L必须与输入中的L数量相同,D的数量相同 输入只能有一个元素(甚至可能有零个元素) 如果一个或两个输出数组不包含任何元素,则输出一个空列表(在某些语言中,这可能意味着您需要输出一个字符串) 始终将第一个数组作为L的数组 输出示例: ["L","D","L","D","D"] -> [["L","L"],["D","D","D"]] ["L","L","L"] -> [["L","L","L"],[]] ["D","D"] -> [[],["D","D"]] [] -> [[],[]]

3
当生活给你柠檬时,做柠檬水
挑战 您将得到一个输入字符串,任何地方的话"Lemon"是发现它应转换到"Lemonade" ,但是在a,d和e在句子中必须借用了别的地方。 例 输入示例: 我小时候发现一个柠檬 示例输出: 我小时候就喝柠檬水 该柠檬水是由从原来的偷下标字母创建 我foun d柠檬水WH é ñ我是一个孩子 这只是一个可能的输出示例,“ e”,“ d”和“ a”可以从任何地方获取(当然单词除外lemon) 评论 •如果,或s 不足e,则必须输出给定字母可进行的操作。例如,输入将输出adbdblemonbblemond • lemon文本可能并不总是独立的(两边都有空格)。例如,您可能lemons在输入中的某处有单词,而输出应为lemonades •输入可以包含任意数量的lemons,甚至0 lemons(在这种情况下,输出将与输入相同) •您可以用大写和小写字母来制作您的柠檬水,例如leMon可以变成leMonade,而ade借用可以是任意大小写(因此也可以变成leMonADe)。您借用的信件的大小写必须保持与借用时相同。(示例输入->输出,he hAD lemOn-> h h lemOnADe) •不必是一个完整的程序,仅一个功能就可以。 •您可以假设输入仅是CP437字符集 高尔夫代码 这是代码高尔夫球,因此赢得最少的字节数! 伪测试案例 *注意:对于任何给定的输入,可能会有多个可能的输出,因此您的程序可能无法完全按照这些测试用例的方式输出,这仅仅是为了使人们可以理解逻辑: 输入:EpaD leMons 输出:p LeMonaDEs 输入:hello world 输出:hello world 输入:柠檬柠檬 输出:柠檬柠檬 *(本e,a,d字母不应该从另一个“柠檬”拍摄) 输入:HE HAD柠檬水 输出:HH …
21 code-golf  string  code-golf  parsing  internet  stack-exchange-api  code-challenge  kolmogorov-complexity  restricted-source  brain-flak  python  logic  pyth  code-golf  string  search  optimized-output  code-golf  tips  language-design  golfing-language  code-golf  tips  language-design  code-golf  number  sorting  pi  code-golf  math  number  code-golf  string  balanced-string  classification  brain-flak  code-golf  math  number-theory  decision-problem  code-golf  tips  code-golf  number  sequence  code-golf  balanced-string  brain-flak  code-golf  math  sequence  arithmetic  fibonacci  code-golf  math  parsing  code-golf  string  keyboard  code-golf  code-golf  string  source-layout  whitespace  code-golf  math  rational-numbers  code-golf  string  code-golf  string  code-golf  math  sequence  code-golf  number  floating-point  code-golf  string  decision-problem  subsequence  code-golf  string  kolmogorov-complexity  code-golf  string  permutations  balanced-string  brain-flak  code-golf  string  math  number  code-golf  string  primes  cipher  code-golf  string  ascii-art  chemistry  code-golf  ascii-art  grid  counting  code-golf  math  arithmetic  integer  code-golf  number  kolmogorov-complexity  code-golf  ascii-art  kolmogorov-complexity  sequence  metagolf  brain-flak  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  whitespace 

10
排序无用字符
TidB给出的非常好的答案激发了这一挑战。 在TidB的答案,每八个字符是正确的顺序:gnilwoB edoC(Code Bowling向后)。但是,其他字符串的排列顺序却是奇怪的,随机的。 您的挑战是解决此问题。 以一个(非空)字符串和一个正整数n作为输入。该字符串将包含范围为32-126(空格到波浪号)的ASCII字符。 您必须按升序对字符串进行排序(根据ASCII码值从左看),但是n从字符串的末尾开始跳过每个字符。例如,让我们以字符串abcdABC123作为输入,然后n=4,我们将得到: abcdABC123 <- Input string. (n=4) _b___B___3 <- These will not be sorted (every 4th starting from the end) 1_2AC_acd_ <- The remaining characters, sorted 1b2ACBacd3 <- The final string (the output) 另一个例子: 9876543210 <- Input string (n=2) _8_6_4_2_0 <- These will not be …

30
算上我的零钱
您的任务是对包含字符串“ quarter”,“ dime”,“ nickel”和“ penny”的数组进行无数次排序(无特定顺序),然​​后对其进行排序,以使它们的顺序为:(quarter dime nickel penny换句话说,最高至最低货币价值)。 规则 您的程序必须将包含美国硬币名称的数组作为输入,并按货币值从大到小对它们进行排序。 对于那些不是来自美国或不使用零钱的人,美国硬币的价值(从最大到最小)是: 季度:25美分 一角钱:10美分 镍:5美分 竹enny:1分 您可以按照任何希望的方式对该数组进行排序,只要输出按上面显示的货币值排序即可。 输入可以以任何方式获取,无论是命令行参数还是STDIN。 输入数组将全部为小写字符串,如下所示: quarter dime nickel nickel quarter dime penny penny 输入和输出的实际格式由您决定。 测试用例 "penny nickel dime quarter" -> "quarter dime nickel penny" "nickel penny penny quarter quarter quarter dime dime dime dime" -> "quarter quarter …

28
对整数列表进行排名
您会得到一个非空的正整数列表,例如 [6 2 9 7 2 6 5 3 3 4] 您应该按其值对这些数字进行排名,但是在排行榜中通常如此,如果存在平局,则所有并列的数字都将获得相同的排名,而跳过适当的排名数。因此,以上列表的预期输出为 [3 9 1 2 9 3 5 7 7 6] 例如,输入中的最高值为9,因此这成为了1(第一等级)。第三高的值为6,因此都6变为3,并且排名4完全跳过。 规则 您可以使用任何方便,明确,平坦的列表格式进行输入和输出。输出中的第一/最小等级应始终为1。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 [8] -> [1] [1 15] -> [2 1] [18 14 11] -> [1 2 3] [11 16 14 8] -> [3 …

3
原子比例游戏
您的任务是使机器人扮演得分最高的Atomas。 游戏的运作方式: 游戏板以6个“原子”的环开头,数字范围为1到3。您可以“玩”两个原子之间或另一个原子上的原子,具体取决于原子本身。 您可以有一个普通原子,也可以有一个特殊原子。 正常原子: 您可以在板上任意两个可用原子之间播放普通原子。 您从处于该范围内的原子开始1 to 3,但是该范围每40移动一次就增加1(因此,在40移动之后,范围变为2 to 4)。 如果板上的原子小于该范围,则有1 / no. of atoms of that number on the board可能产生。 假设您有一个2要玩的地方,董事会看起来像这样: 1 1 2 1 让我们将放在的2右侧1。 董事会现在变成: 1 1 2 1 2 注意:木板环绕,所以1最左侧的实际上2是最右侧的旁边。稍后将很重要。 有“特殊”原子的4种类型,它们是: 的+原子: 这个原子在两个原子之间起作用。它有五分之一的机会产卵。 如果原子两侧的+原子相同,则会发生聚变。运作方式如下: The two atoms fuse together to create an atom one higher. …
21 code-challenge  game  code-golf  combinatorics  permutations  code-golf  image-processing  brainfuck  encode  steganography  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  fibonacci  code-golf  string  code-golf  sorting  popularity-contest  statistics  code-golf  ascii-art  kolmogorov-complexity  code-golf  code-golf  ascii-art  tic-tac-toe  code-golf  string  code-challenge  classification  test-battery  binary-matrix  code-golf  math  arithmetic  code-golf  ascii-art  random  code-golf  string  code-golf  number  binary  bitwise  code-golf  number  arithmetic  code-golf  math  ascii-art  code-golf  string  ascii-art  code-golf  string  ascii-art  code-golf  string  code-golf  counting  code-golf  number  binary  bitwise  decision-problem  code-golf  array-manipulation  code-golf  tips  brain-flak  code-challenge  quine  source-layout  code-generation  code-golf  linear-algebra  matrix  abstract-algebra  binary-matrix  code-golf  string  palindrome  code-golf  puzzle-solver  sudoku  code-golf  ascii-art  code-golf  graphical-output  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  code-golf  clock 

8
疯狂的图书管理员的惊人分类系统
回到学校了!因此,对于兼职工作,您正在学校的图书馆里帮忙。问题是,首席图书馆馆长甚至从未听过“杜威十进制”一词,更不用说实施该系统了。取而代之的是,随着库的扩展,正在使用的排序系统已经“有机地”增长了。 为了保持理智,您选择编写一个程序来帮助您归还书本,因为如果对书本进行错误的分类会给您带来麻烦。(首席图书馆员非常严格。) 输入输出 输入将是(假设的)书名列表,每行一个,来自STDIN /等效语言。 您一次最多只能输入100本书(您一次只能在图书馆中随身携带这么多书籍)。 书的标题中可以有多个单词,这些单词可以用空格或其他标点符号(例如,冒号:,破折号-等)分隔。 为了便于计算,假设所有标题均为UTF-8。 输出是相同的标题,根据以下规则排序,每行再一次,与STDOUT /语言等效。 排序规则 根据书籍的平均字符值(即,累积字符值除以书籍标题中的字符数)对书籍进行数字排序,并按以下规则计数: 所有字符都用于确定标题中的字符数。 小写字母按其在字母表中的位置计数。(a = 1,b = 2,... z = 26) 如果标题中包含大写字母,则它们的小写字母价值为1.5(A = 1.5,B = 3,... Z = 39)。(“大写字母很重要!”图书管理员说。) 该列表中的每个标点符号/符号在!@#$%^&*()-=_+[]\{}|;':",./<>?~取平均值之前均从累计值中计数为-1。(“华丽的标题不是!”) 如果标题中包含以阿拉伯数字表示的数字,则在排序之前从平均值中减去该数字。多个连续的数字被视为一个数字(例如,42将减去42,而不是减去4,然后再减去2)。单个数字不计入累计值(即,每个数字贡献0),但DO计入字符数。请注意,这可能会导致负值,应适当对待。(有传言,图书馆员迷恋数学老师已有好几年了。) 如果书名包含两个以开头的单独单词R,则该书的得分为“无穷大”,并被丢到角落的一堆书中(即,随机排列在列表的末尾)。(图书馆员曾经被一个带有这些缩写的人丢弃,或者您已经听说过。) 空格不计入字符的累积值(即,它们贡献0),但确实对标题中的字符数有所贡献。 不符合上述规则的字符(例如a ÿ)不会计入字符的累积值(即,它们贡献0),但确实会增加标题中的字符数。 例如,假设的书ÿÿÿÿÿ的“分数”为(0+0+0+0+0) / 5 = 0,但是假设的书的ÿÿyÿÿ分数为(0+0+25+0+0) / 5 = 5。 您可以按自己选择的顺序输出两本“得分”相同的书。(无论如何,它们在同一架子上) 示例输入1 War and Peace Reading …

9
堆放圣诞礼物
有人急忙堆放圣诞节礼物,真是一团糟: ======================== | | ======================== ============= | | | | | | | | | | | | ============= ======= | | | | | | ======= =================== | | | | | | =================== ================= | | | | | | | | ================= ======= | | | | …

2
书库排序
堆放书籍时,通常需要将最大的书籍放在底部,最小的书籍放在顶部。但是,如果我有两本书,其中一本短(高)但比另一本宽,那么我潜在的OCD会让我感到非常不安。无论我按什么顺序放置它们,顶层的书都会在一侧超出底层的书。 例如,假设一本书具有尺寸(10,15),另一本书具有尺寸(11,14)。不管我以哪种方式放置它们,我都会伸出来。但是,如果我有尺寸为(4,3)和的书(5,6),则可以通过将书本放在书本下面来避免悬垂。 出于此挑战的目的,我们将仅考虑与紧随其后的书有关的突出部分。例如,如果我有一个堆栈(5,5),(3,3),(4,4)(没有任何理智的人会这么做),顶书算是悬垂,虽然它不超出底部的书。同样地,堆栈(3,3),(3,3),(4,4)也只有一个悬,尽管超出底部一个顶部的书。 挑战 给定用于书籍尺寸的整数对列表,请对这些对/书籍进行排序,以使突出的数量最少。您不能旋转书本-我希望所有的脊椎都朝向相同的方向。如果存在多个具有相同悬垂数的解决方案,则可以选择任何此类顺序。您的排序算法不一定是稳定的。您的实现可能假设每本书的尺寸小于2 16。 时间复杂度:为了使这一点更有趣,算法的渐近最坏情况复杂度必须是堆栈大小的多项式。因此,您不能仅仅测试所有可能的排列。请提供算法最佳性和复杂性的简短证明,并提供一个可选的图表,以显示大型随机输入的比例。当然,您不能使用输入的最大大小作为代码在O(1)中运行的参数。 您可以编写程序或函数,通过STDIN,ARGV或函数参数以任何方便的(未经预处理的)列表格式进行输入,然后打印或返回结果。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 我相信存在多项式解,但是如果您可以证明我错了,则可以提交这样的证明,而不是打高尔夫球。在这种情况下,您可以假设P≠NP。我将接受第一个正确的此类证明,并给予悬赏。 例子 In: [[1, 1], [10, 10], [4, 5], [7, 5], [7, 7], [10, 10], [9, 8], [7, 5], [7, 5], [3, 1]] Out: [[10, 10], [10, 10], [9, 8], [7, 7], [7, 5], [7, 5], [7, 5], [4, 5], [3, …

6
河内塔排序
编写一个函数/子例程以对整数列表(河内塔式)进行排序。 您将获得一堆整数。这是主堆栈。 您还将获得另外两个帮助程序堆栈。但是,这些帮助程序堆栈具有一个独特的属性:每个元素必须小于或小于其下面的元素的大小。主堆栈没有这种限制。 您的任务是对主堆栈进行排序,将最大的整数放在下面。您的函数/子例程将返回(或等效)它在对堆栈进行排序时执行的移动次数。 注意:您必须在适当的位置对主堆栈进行排序,而不能在另一个堆栈上进行排序并调用答案。但是,如果由于某种原因而不能这样做,则可以模拟可变堆栈,但是请记住,这是河内塔之类的;只有3个钉子,只有1个钉子可能是无序的。 您的函数/子例程可以随时检查任何堆栈,但是只能通过弹出和推入进行移动。一招是从一个堆栈弹出到另一个堆栈的弹出。 测试前6个自然数的每个排列的函数/子例程。换句话说,测试您的函数/子例程{1},{2},...,{6},{1,1},{1,2},...,{1,6},{2,1},...是否可用(这应该是总数或可能性(由于霍华德纠正了我的数学运算))。移动元素最少次数的函数/子例程获胜。61+62+...+6655986

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.