Questions tagged «parsing»

此标签表示挑战,其中解析输入很大/挑战的主要部分。

6
Panfix到括号中的括号
Quylthulg是Chris Pressey 编写的一种语言,它试图通过使用panfix来解决中缀表示法的问题: 像postfix一样,panfix不需要部署神秘的设计(例如括号)来覆盖默认的运算符优先级。同时,panfix允许以与infix相同的顺序和方式来指定术语,这对于已经习惯infix的人来说无疑是一种自然而直观的表示法。 如何获得前缀表示法的便利性以及前缀或后缀的明确性?当然,全部使用这三个! =y=+*3*x*+1+= 更正式,更+是运营商,并a和b是表达式。然后(a+b)是一个有效的(带括号)中缀表达式,该表达式的panfix表示为+a+b+,其中并置表示串联。 您的目标是获取一个panfix字符串并将其转换为带括号的后缀: (y=((3*x)+1)) 为简单起见,我们将进行以下更改: 运算符只能由两个唯一的字符组成(您可以选择任何一个,但是在这里我将使用*和+)。 只有一个文字,它由另一个不同的字符组成(您可以选择任何一个,但在这里我将使用_)。 输入将是格式正确的panfix表达式。 对于复杂性,我们将进行以下更改: 运算符可以包含任意数量的正字符,而不仅仅是一个。 这使挑战变得更加棘手,因为您无需确定字符串的其余部分就不必确定给定的操作符子字符串的分区方式。 这是挑战的参考实现,由@ user202729提供。 测试用例 format: input -> output +*+_*+_*+++_+*+_*+_*+++ -> ((_*+_)+(_+(_*+_))) **++*+***++_+_++_+*++*+***_*++*+*****_**_*_*** -> ((((_+_)+_)*++*+***_)*(_*(_*_))) ***_**_***_* -> ((_**_)*_) +_+_+ -> (_+_) *+*+++**+***+++++_*+*+++**+***+++++_*+*+++**+***+++++ -> (_*+*+++**+***+++++_) *++++*+*_*_*+*+++****+_++****+_++****++*+*+++_*+++ -> (((_*_)+*+(_++****+_))*+++_) +**+_*+_*+*_*+*_*+*_+*_+**+ -> (((_*+_)*_)+(_*(_+*_))) +**+++++_+++++_+++++*_*+*+_++++++_+++++_+++++++* -> (((_+++++_)*_)+*(_+(_+++++_))) +*+*+_+*+_+*+*_*+*_*+*+_+*+_+*+*+ -> (((_+*+_)*_)+(_*(_+*+_))) …

15
解析带符号的一元数列表
一元数通常只表示非负整数,但是我们可以如下扩展它们以表示所有整数: 正整数N表示为N 1:5 -> 11111 负整数-N表示为0N,后跟N 1:-5 -> 011111 零表示为 0 如果使用0分隔符,则可以明确表示这些数字的列表: 3,-2,0,1 111,011,0,1 111 0 011 0 0 0 1 11100110001 您的任务:获取一个表示这样的带符号的一进制数字列表的字符串,并将其转换为十进制数字列表。 细节 您可以假定输入是带符号的一进制数字的完整列表。特别是,您的程序将不必处理1)空输入或2)以分隔符结尾的输入。 您可以假设每个数字的大小不超过127。对于具有最大字符串或列表大小的语言,可以假设输入和输出将适合您语言的数据结构,但是从理论上讲,算法应适用于以下列表任何大小。 你的程序或功能可以执行的I / O任何标准的方法。输入可以是字符串或字符列表,单字符字符串,整数或布尔值。您可以使用任何两个字符来表示1和0; 如果您不使用1和0,请指定您正在使用的字符。 输出必须是任何合理列表格式的十进制数字(尤其是数字之间必须有某种分隔符)。负数应以减号表示,尽管如果您的语言对负整数使用不同的格式,我也会接受。零可以在输出中表示为0或-0。 测试用例 1 -> 1 0 -> 0 (or -0, and similarly for the other test cases) 011 -> -2 …

1
没有代表上限,您的声誉如何?
在此挑战中,如果PPCG不存在信誉上限,您将计算自己的信誉。 每个人都可以访问原始数据以更改地址上的声誉:codegolf.stackexchange.com/reputation。原始数据遵循这样的设置(这些是我页面版本的前几行。 total votes: 2955 -- bonuses (100) 2 37663 (10) -- 2014-09-11 rep +110 = 111 2 41751 (10) -- 2014-11-23 rep +10 = 121 2 41751 (10) 2 41751 (10) -- 2014-11-24 rep +20 = 141 第一行与该挑战无关(它显示您对所有答案和问题所获得的总票数)。第二行显示“协会奖金”。如果您没有奖金,那么该行将根本不存在。 在这两行(或一个,如果没有奖金)行之后,您将获得每个问题的声誉更改列表,以及每天获得/丢失的所有代表的摘要。您还将获得当天结束时的总声誉列表。此列表仅显示您的声誉改变的日子。 每行的开头都有标识符(每日摘要行除外)。这些代表以下潜在的声誉更改原因: 1 : Accept (+2 if you accept, +15 if …

1
将ASCII框图转换为Unicode
我无耻地发布了对我实际上有用的请求。任务是拍摄像这样的任意ascii框图 | +----+----+ | state A +---+ +---------+ | | +----v----+ | state B | +---------+ ...并使用unicode框绘图字符将其转换为更漂亮的内容,例如 │ ╭────┴────╮ │ state A ├───╮ ╰─────────╯ │ │ ╭────v────╮ │ state B │ ╰─────────╯ 更详细地: 仅转换+-| 字符-其他字符应保持不变 采用 装箱图灯(U + 2502)│ 方框图卧式(U + 2500)─ 方框图上下左右光弧(U + 256D)╭ 方框图上下左右光弧(U + 256E)╮ 方框图向上和向左轻弧(U + …

20
分解一个数字!
您的任务是使用以下格式分解数字。 这与基本转换类似,不同之处在于digits,您列出了values,而不是在基本列表中列出,这样列表就加到了输入上。 如果给定的基为n,则列表中的每个数字都必须采用的形式k*(n**m),其中0<=k<n和m在整个列表中都是唯一的。 眼镜 任何合理的输入/输出格式。您的程序/功能需要2个输入并输出一个列表。 输出列表可以是任何顺序。 0 可以排除或包含。 0允许领导。 允许内置。 测试用例 number base converted list input1 input2 output 123456 10 [100000,20000,3000,400,50,6] or [6,50,400,3000,20000,100000] 11 2 [8,2,1] or [0,0,0,0,8,0,2,1] 727 20 [400,320,7] 101 10 [100,1] or [100,0,1] 计分 这是代码高尔夫球。以字节为单位的最短解决方案获胜。
16 code-golf  number  sequence  number-theory  base-conversion  code-golf  bitwise  hashing  code-golf  string  ascii-art  whitespace  code-golf  math  code-golf  code-golf  image-processing  counting  code-golf  math  arithmetic  checksum  code-golf  code-golf  math  arithmetic  number-theory  code-golf  array-manipulation  random  code-golf  string  code-golf  math  ascii-art  base-conversion  code-golf  graphical-output  geometry  3d  code-golf  math  linear-algebra  matrix  code-golf  math  number  sequence  code-golf  array-manipulation  code-golf  math  matrix  linear-algebra  code-golf  number  sequence  counting  code-golf  string  code-golf  string  restricted-source  quine  sorting  code-golf  string  geometry  code-golf  string  code-golf  networking  code-golf  base-conversion  code-golf  math  matrix  code-golf  arithmetic  linear-algebra  matrix  code-golf  number  arithmetic  grid  code-golf  number  source-layout  code-golf  string  bitwise  checksum  code-golf  array-manipulation  code-golf  string  probability-theory  code-golf  tips  code-golf  sequence  code-golf  string  math  sequence  calculus  code-golf  string  palindrome  bioinformatics  code-golf  math  combinatorics  counting  permutations  code-golf  parsing  logic-gates  code-golf  arithmetic  number-theory  combinatorics  code-golf  math  sequence  polynomials  integer  code-golf  string  ascii-art  chess  code-golf  string  code-golf  number  code-golf  string  ascii-art  parsing  code-golf  code-golf  number  natural-language  conversion  code-golf  arithmetic  code-golf  string  code-golf  ascii-art  decision-problem 

5
解析嵌套的数字前导字符串
任务 通过S以下过程构造字符串: 从...开始 S是空字符串。 插入S格式为的字符串的某个位置ds,其中d是非零数字,并且s是d小写ASCII字母的字符串。我们说ds是一个组成部分的S。 转到步骤2或停止。 您的任务是采用这样的字符串作为输入,并按其前导数字的出现顺序将其组成部分输出为单个字符串。输出必须是单个字符串,并且成分之间不能有任何定界符(包括换行符)。您可以选择输入和输出字符串是否带有引号。请注意,输入和输出永远不会为空。 例 让我们用上述过程构造一个字符串。最终结果突出显示了成分的结构。 S = "" // Insert "3abc" S = "3abc" // Insert "2gh" after 'a' S = "3a2ghbc" // Insert "1x" before '3' S = "1x3a2ghbc" // Insert "3tty" after '3' S = "1x33ttya2ghbc" // Final result └┘│└┴┴┘│└┴┘││ └────┴───┴┘ 通过按数字的顺序将组成部分串联在一起来获得输出。在这种情况下,正确的输出是 "1x3abc3tty2gh" 规则和计分 …

1
谁在第十九个字节中拥有最多的星星?
注意:此挑战涉及通过HTML网页下载和筛选。如果您的语言无法解决此问题,则您可能不想参加此挑战。 介绍 在第十九字节聊天室中总是有关于谁领导右舷的讨论。因此,让我们帮助所有人,并计算聊天中每个用户的星星总数。 挑战 给定一个N大于零的正整数,请计算N聊天中最后加星标的消息的右舷首长。这些消息可以在这里查看。提示:每页有50条加星标的消息。输出将按已加星标的邮件数量列出前5位用户。的奖金-15%关闭您的字节数将被授予如果你能显示这些用户的用户名,但没有就给予惩罚,如果你简单地显示用户ID编号。请注意,某些已加星标的邮件中有亵渎行为。如果您对这种类型的语言敏感,请谨慎浏览页面。 示例(图片是撰写此挑战时的当前右舷): (红色)输入:5输出(附赠):[Geobits Sp3000 PhiNotPi Seadrus] (蓝色)输入:10输出(无奖金):[51024 17335 24697 116494 129255] (绿色)输入:14输出(无奖金):[51024 116494 141697 17335 24697] 多余的东西: 前5名的领带将按用户ID编号从低到高排序。如果少于五个用户,则仅输出排行榜,最后排空。输入和输出可以是任何格式。输出不需要大写。如果输入大于50,则仍必须计算第2页,第3页等上的消息。您可以假设输入将始终在之下2^31,并且也不会太大,以至于1)大于已加星标的消息的数量2)不会使程序崩溃(通过使数组变大,内存不足等)。 这是代码高尔夫球,以字节为单位的最短代码胜出! 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为了确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果您想在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中: …

5
Code Golf:解析Google结果
当您在Google搜索结果中的内容页面时,用户可以看到绿色链接,显示结果的第一页。 使用任何语言,以最短的形式(以字节为单位)以列表的形式显示到stdout的那些链接。这是一个有关堆栈交换查询的第一个结果的示例: 输入: 您选择:URL(www.google.com/search?q=stackexchange&ie=utf-8&oe=utf-8)还是stackexchange 输出: french.stackexchange.com/, stackoverflow.com/, fr.wikipedia.org/wiki/Stack_Exchange_Network, en.wikipedia.org/wiki/Stack_Exchange,... 规则: 您可以使用URL缩短器或其他搜索工具/ API,只要结果与搜索https://www.google.com相同即可。 如果您的程序具有打开网络浏览器之类的副作用,这样可以使隐藏的Google html / js页面在呈现时可以读取,这是可以的。 您可以使用浏览器插件,用户脚本... 如果您不能使用标准输出,请使用例如将其打印到屏幕上。弹出窗口或JavaScript警报! 您不需要结尾的/或开始的http(s):// 您不应显示任何其他链接 最短的代码胜出! 祝好运 ! 编辑:本场高尔夫球比赛于15年8月8日结束。

19
最短的Konami码
问题 您必须编写一个程序,在运行时键入Konami代码时,该程序会打印字符串“ +30 lives”,并从计算机的扬声器中发出您选择的声音。 定义 定义“ Konami代码”,UUDDLRLRBA然后按Enter键。 规则 只要您的代码与箭头或字母一致,就可以选择使用向上箭头U,向下箭头D,左箭头L和右R箭头。 您的输入可以从控制器或键盘接受,但不需要同时支持这两种输入。 现有答案可以BABA代替继续使用BA,但也可以根据需要将其缩短。将来的答案都应该BA用于保持一致性。 不需要支持空输入。

10
确定输入的类型
挑战很简单:确定输入的类型,然后输出一个标识它是什么类型的标识符。 “UI”,无符号整数:0,1,34,111111111111111111111111111111111111111111 “SI”,有符号整数:+0,+1,+42,-1,-3,-111111111111111111111111111111111111111111 “UD”无符号十进制:0.0,1.23,1234.1234 “SD”,符号十进制:-0.0,+0.0,-1.235 “ LE”,字母:a- z和A-Z “ SY”,符号:ASCII代码点:([32-47, 58-64, 91-96, 123-126]即,除数字和字母外的所有字符) “ ST”,字符串:两个或多个无法解析为上述任何数字格式的字符 规则: 输入的长度为1-99个字符 输入将仅包含可打印的ASCII字符,代码点:32-126。 输出应该是上面定义的两个标识符字母(UI,SI ...) 适用标准I / O规则 例子: UI: 0 01 34 12938219383278319086135768712319838871631827319218923 SI: -0 +01 +1 -123 +123 UD: 0.0 3.1415 2.718281828459045235360287471352662497757 SD: +0.0 -3.1415 +2.718281828459045235360287471352662497757 LE: a k L Z SY: @ …

3
标记基于堆栈的语言
我一直在研究另一种称为Stackgoat的基于堆栈的高尔夫语言。在这个挑战中,您将为Stackgoat(或实际上是任何通用的基于堆栈的语言)编写Tokenizer。 例子 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 规格 您需要处理的三种类型是: 弦乐,什么内"" 数字,任何数字序列 运算符,除空格外的任何其他单个字符 除非将其留在字符串中或将两个数字分隔开,否则实际上将忽略空格。 字符串/字符规范: 字符串以分隔",当\遇到时,下一个字符应转义。 字符前面加a ',后面的字符'应转换为字符串文字。'a->"a" ' 后面总会有一个角色 右引号应自动插入 规则: 没有形式eval允许 输入输出: 可以通过STDIN,函数参数或您的语言等效输入。 输出应为数组或您的语言最接近的等效数组。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

3
帮我安排时间
最近有人告诉我要在新年之前读一本完整的物理教科书(不幸的是,是真实的故事)。我需要您的帮助来确定每天应阅读哪些章节。这是您进来的地方。 输入值 两个日期,任何格式。第二个日期将始终晚于第一个日期。 章节编号列表。此逗号分隔的列表可以包含单个章节(12)或包含范围(1-3)。例如 1-3,5,6,10-13。 Monday -> Mo要从时间表中排除的工作日列表(用名称的前两个字母表示:)。例如 Mo,Tu,Fr。 输出量 输出将是用换行符分隔的日期和章节编号的列表(请参见下面的格式)。这些章节应在该范围内的所有日期(不包括提供的工作日)中平均分配。如果各章分布不均,请在时段结束时保留较少的章节。输出中的日期可以采用与输入不同的格式。没有章节的日子可以被忽略,或者没有章节。 例: 输入: 9/17/2015 9/27/2015 1-15 Tu 输出: 9/17/2015: 1 2 9/18/2015: 3 4 9/19/2015: 5 6 9/20/2015: 7 8 9/21/2015: 9 10 9/23/2015: 11 9/24/2015: 12 9/25/2015: 13 9/26/2015: 14 9/27/2015: 15

4
惰性程序员的XML解析器
背景 您正在作为汽车销售公司的程序员。本周的任务是对XML解析器进行编程,以吸收来自不同汽车制造商的可用模型的数据,并打印有关最新模型的信息。幸运的是,测试部门仅提供了一个测试用例!您编写越快的代码越快,在本周的其余时间中拖延时间就越长。 输入值 您输入的正是测试部门提供的XML数据。它包含有关一些汽车制造商,他们的汽车系列以及这些系列中的模型的数据。您可以假设尾随换行符。 <?xml version="1.0" ?> <products> <manufacturer name="Test Manufacturer 1"> <series title="Supercar" code="S1"> <model> <name>Road Czar</name> <code>C</code> <year>2011</year> </model> <model> <name>Ubervehicle</name> <code>U</code> <year>2013</year> </model> <model> <name>Incredibulus</name> <code>I</code> <year>2015</year> </model> <model> <name>Model 1</name> <code>01</code> <year>2010</year> </model> </series> <series title="Test series 22" code="Test"> <model> <name>Test model asdafds</name> <code>TT</code> <year>2014</year> </model> …

14
乘以两个整数多项式
您的任务是采用两个单变量整数多项式表达式,并将它们乘以其未经简化的第一项主要从左到右展开(对于二项式,则为 AKA FOIL)。请勿组合类似的字词或对结果重新排序。为了更清楚地了解扩展,请按顺序将第一个表达式中的第一个项乘以第二个表达式中的每个项,然后继续在第一个表达式中进行操作,直到所有项都已与所有其他项相乘。表达式将以简化的LaTeX变体形式给出。 每个表达式将是一个由一系列术语组成的序列,这些序列由+(每边正好有一个空格)隔开。每个术语将符合以下正则表达式:(PCRE表示法) -?\d+x\^\d+ 用简单的英语来说,该术语是一个可选的前导,-后跟一个或多个数字,后跟x一个非负整数幂(带有^) 完整表达式的示例: 6x^3 + 1337x^2 + -4x^1 + 2x^0 当插入乳胶,将得到6x3+1337x2+−4x1+2x06x3+1337x2+−4x1+2x06x^3 + 1337x^2 + -4x^1 + 2x^0 输出也应符合此格式。 由于方括号不会以此格式包围指数,因此LaTeX实际上会错误地呈现多位数的指数。(例如,4x^3 + -2x^14 + 54x^28 + -4x^5呈现为4x3+−2x14+54x28+−4x54x3+−2x14+54x28+−4x54x^3 + -2x^14 + 54x^28 + -4x^5)你并不需要考虑到这一点,你不应该包括括号中的输出。 示例测试用例 5x^4 3x^23 15x^27 6x^2 + 7x^1 + -2x^0 1x^2 + -2x^3 6x^4 + -12x^5 …

5
现实生活中的共轭
在@Adám的 Dyalog APL扩展中,⍢(下)运算符表示共轭:应用一个函数,然后应用第二个函数,然后应用第一个函数的反函数。从共轭的角度考虑现实生活中的动作很有趣: 一个问题由g转换为另一个域,在该域​​中更容易由f解决,然后又转换回原始域。现实生活中的一个例子是“麻醉下”: apply anesthetics perform surgery wake up from anesthetics 挑战 线的g反面以“ un”开头g,反之亦然。按此s顺序,将其之间的任意一行及其反行定义为“在”之下s。每行f输入中的,依次为: 如果 f和都发生逆,则不执行任何操作 如果 f不是“没有”任何其他动作,请打印f 如果f在“一行”下g,则f + " under " + g在+串联处打印。 输入值 非空的多行字符串或字符串列表等,由空格和小写字母组成(您可以改用大写字母)。恰好一行将以“ un”开头;这将是其他一些线的反面。没有行将为空。 输出量 以您输入时使用的相同格式或标准I / O允许的格式输出。 测试用例: Input: apply anesthetics perform surgery unapply anesthetics Output: perform surgery under apply anesthetics Input: unite asia …

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.