给定一个由ASCII可打印字符组成的字符串,返回多少字符串可以与字符文本和类似regex的范围匹配给定的模式。
模式字符串遵循下面的语法(x表示一个选项,*表示左边发生的任何事情的0次或更多次):
pattern := '' | pattern_string
pattern_string := (SAFE_CHAR | ASCII_RANGE) pattern_string*
ASCII_RANGE := '[' CHAR '-' CHAR ']'其中CHAR是范围内的任何ASCII字符,[32, 127]和SAFE_CHAR是除[、-和]三个字符之外的任何CHAR。
模式字符串的示例将是a、[0-*]4fj、[a-z][4-9]D[d-B]。
图案串。您可以假设所有范围都是格式良好的,并且范围中的所有第二个字符都有它们的ASCII代码点>=,而不是该范围中对应的第一个字符。
对应于与给定模式字符串匹配的字符串数的整数。
"" -> 1
"a" -> 1
"[*-0]" -> 7
"[0-9][0-9]" -> 100
"[a-z]d[A-z]" -> 1508
"[<->]" -> 3
"[!-&]" -> 6
"[d-z]abf[d-z]fg" -> 529
"[[-]]" -> 3
"[a-a][b-b]cde[---]" -> 1
"[0-1][0-1][0-1][0-1][0-1][0-1][0-1][0-1][0-1][0-1][0-1][0-1]" -> 4096
"[--[][--]]" -> 2303
"[[-[].[]-]]" -> 1您可以检查我用来生成测试用例的这个Python参考实现。
这是密码-高尔夫所以最短的提交字节,赢!如果你喜欢这个挑战,考虑一下.打高尔夫球也很开心!
这是RGS高尔夫表演的第二个挑战。如果你想参加比赛,你有96个小时的时间提交你的合格答案。记住,在奖品中还有400个声誉!(见规则6)
此外,根据链接元员额规则第4节的规定,第二个挑战的“受限语言”是:05AB1E、W、果冻、杰夫特、盖亚、MathGolf和斯塔克斯,因此以这些语言提交的作品没有资格获得最终奖。但他们仍然可以被张贴!!
否则,这仍然是一个常规的密码-高尔夫挑战,所以享受吧!
发布于 2020-02-28 15:08:23
https://codegolf.stackexchange.com/questions/200250
复制相似问题