介绍
文件名可能千差万别,范围从简单blah.txt
到303549020150514101638190-MSP0.txt
。前者通常是人为产生的,而后者通常是机器产生的。拥有一个简单的功能对文件是否可以被认为是“人类友好的”做出有根据的猜测,这会很好吗?
受Eduard Florinescu的帖子启发,此帖子已被删除。他的想法很好,但只需要一点充实。
挑战
用您选择的语言编写可以接受字符串的程序或函数,并确定是否将该挑战定义为“对人类友好”。
一些进一步的细节和规则如下:
- 输入将是由95个可打印的ASCII字符组成的字符串。
- “人类友好”应据此定义:
- 在考虑中不包括扩展名。扩展名定义为最后一个句号,后跟一系列字母数字字符(少至1个,最多6个)。
- 长度不超过一半的字符串(不包括扩展名)可以由以下定义的字符分组(组合)组成:
- 连续超过8个十进制字符。
- 连续至少16个十六进制字符(大写或小写)(必须由字母和数字组成,并且其中至少三分之一的字符是数字)。
%+=
连续至少12个Base64字符(用作特殊字符)(必须由字母和数字组成,大小写混合,并且其中至少三分之一是大写字母)。
- 如果以上任何分组在定义上重叠(例如,符合条件的分组为base64,但连续有8位数字),请选择要排除的最长分组。
- 输出应该是真实值还是虚假值,具体取决于字符串是否被认为是“人类友好的”。
- 假设将仅使用有效输入。不用担心错误处理。
优胜者将由最短的程序/功能决定。他们将至少在7天内被选中,或者如果/足够的话,将被选中。如果出现平局,则较早的答案为准。
例子
这是您的代码应能够处理的一些输入和输出示例:
"results_for__michael_greer.txt.zip" => true
"Georg Feuerstein - Connecting the Dots.pdf" => true
"M People - Search for the Hero-ntuqTuc6HxM.mp4" => true
"index.html?v=QTR4WGVTUzFsV3d8NHxvcmlnaW5hbHx8MTExMTAxBHxodHRwOi8vLCwsLHRyLDcsMA%3D%3D.html" => false
"ol2DCE0SIyQC(173).pdf" => false
"d41d8cd98f00b204e9800998ecf8427e.md5" => false
"12792331_807918856008495_7076645197310150318_o.jpg" => false