的启发,也是为了纪念他
他发明并实现了dfns --他的巨著和挑战的主题。
对于感兴趣的人:最新的dfns文档和与约翰的录像。
给定ASCII源代码,回答它属于以下四类中的哪一类:
您可以返回任意四个一致的值,但如果不明显,请说明您的映射。
您可能会假设,源代码总是以开头的大括号{
开头,以结束的大括号}
结尾。
可以出现递归嵌套大括号(例如{{{}}}
),但类别1-3的支撑嵌套深度永远不能低于1(所以{}{}
是“其他”),所有的大括号必须是平衡的(因此{{}
是“其他”)。
忽略行上下列上下文中的字符:
#
的右边(注释):significant#ignored
'
…'
(即字符串中的):significant'ignored'significant
(这也适用于#
:'#'significant
)'
(左边的配对引号):significant'ignored
在花括号一级(即不包括嵌套大括号):
ww
。ww
,但包含aa
ww
也不包含aa
。{ww}
{
www
}
{
''ww'
}
{aa
ww}
{'#''#'ww?aa}
{aa}
{aaaa}
{aa{ww}'ww'}
{w#w'
aa'
}
{aaw*w}
{w'\'aa\''}
{}
{a a}
{aA}
{
{aa}
}
{w
w''w#
w}
{{
}}
{w\'aa\'}
{}{}
{{}
{}}
{ww}}
{}
{}
{ww}{}
{#}
{'
'}
发布于 2019-02-21 19:36:15
m`'.*?('|$)|#.*
¶
s(+`(?!^)\{[^{}]*\}(?!$)
¶
^(?!\{[^{}]*\}$).+
3
^.+ww.+
2
^.+aa.+
1
..+
0
在网上试试!链接包括测试套件。解释:
m`'.*?('|$)|#.*
¶
删除字符串和注释。
s(+`(?!^)\{[^{}]*\}(?!$)
¶
删除匹配的括号,从最里面的工作,但保留第一个和最后的括号。
^(?!\{[^{}]*\}$).+
3
如果我们没有匹配的括号,那么这是另外一个。
^.+ww.+
2
否则,如果我们有ww
,那么这就是并矢Dop。
^.+aa.+
1
否则,如果我们有aa
,那么这就是Monadic Dop。
..+
0
否则,如果这是上面没有涵盖的任何内容,那么这就是Dfn。
https://codegolf.stackexchange.com/questions/180134
复制相似问题