背景
我在维基百科上看到了这个非常有趣的维恩图:https ://simple.wikipedia.org/wiki/Alphabet#/media/File: Venn_diagram_gr_la_ru.svg
它显示了俄语,希腊语和拉丁语字母之间常见的不同字母的字母(物理形状)。
挑战
给定显示的三个脚本中任何一个的输入字符串(即大写的希腊字母,西里尔字母或拉丁字母),请输出与每种语言匹配的字符串百分比。重复的字母每次都会计数。
例如,FFLURS
所有字符都是拉丁字符,因此输出为FFLURS is 100% Latin, 0% Cyrillic and 0% Greek
。
相反,TOX BEAM PHP
完全由所有三种语言中出现的字符组成,因此输出为TOX BEAM PHP is 100% Cyrillic, 100% Greek and 100% Latin
。
查找表
维恩图是以下字母的来源:
仅限拉丁文:
J,G,S,D,Q,U,V,W,F,L,R
拉丁文和西里尔文:
C, С
拉丁文和希腊文:
I,Ι, N,Ν, Z,Ζ
希腊文和西里尔文
Φ,Ф, Π,П, Γ,Г, Λ,Л
三个都:
A,B,E,O,M,K,T,X,Y,H,P (and equivalents in greek and cyrillic), (space)
其余的 ...仅希腊语或西里尔字母。
重要的提示
Unicode(至少)以三种不同的方式定义(例如)“ A”-一种针对每种语言。无论在输入中使用哪个(&#0391,&#0410或&#0041),程序都应将其理解为与所有三种语言都匹配。
因此,A
(拉丁语),Α
(希腊语Alpha)和А
(西里尔字母)都应该给出100% Cyrillic, 100% Greek and 100% Latin
答案。
输入格式
任何只含有串А-Я
,Α-Ω
,A-Z
和(空间)。这些字符可以在字符串中重复多次。
输出格式
如果函数产生一致的结果,则输出可以是任何格式。我喜欢看到我表现出我的例子(格式输出FFLURS is 100% Latin, 0% Cyrillic and 0% Greek
),但为了让更多的挑战对任何人开放,我很高兴接受的百分比/比率的数组/字符串:
[100,0,0]
,
100 0 0
[1.0 0.0 0.0]
只要始终清楚哪个数字是哪种语言-因此输出应保持一致。
一些测试用例
CINEMATICS
-> CINEMATICS is 100% Latin, 70% Greek and 60% Cyrillic
ЩJЩFЩLΞRΞVΞW
-> ЩJЩFЩLΞRΞVΞW is 50% Latin, 25% Cyrillic and 25% Greek
->
is 100% Cyrillic, 100% Greek and 100% Latin
ΨΩTESTINGЯЮ
-> ΨΩTESTINGЯЮ is 63.6% Greek, 63.6% Latin and 45.5% Cyrillic
获奖标准
通常的规则和排除适用;最短答案(字节)获胜。
(沙盒链接:https : //codegolf.meta.stackexchange.com/a/14984/62289)
为避免疑问,输入中唯一有效的Unicode字符是:
- 0020,0041-005A(拉丁字母)
- 0020、0391-03A9(希腊字母)
- 0020、0401、0410-042F(西里尔字母)
但是,如查询表所示,字符可能是跨字母的。
从评论中添加乔纳森·艾伦的表:
Latin Greek Cyrillic
U+0020 Space 1 1 1
U+0041 A Latin capital letter A 1 1 1
U+0042 B Latin capital letter B 1 1 1
U+0043 C Latin capital letter C 1 0 1
U+0044 D Latin capital letter D 1 0 0
U+0045 E Latin capital letter E 1 1 1
U+0046 F Latin capital letter F 1 0 0
U+0047 G Latin capital letter G 1 0 0
U+0048 H Latin capital letter H 1 1 1
U+0049 I Latin capital letter I 1 1 0
U+004A J Latin capital letter J 1 0 0
U+004B K Latin capital letter K 1 1 1
U+004C L Latin capital letter L 1 0 0
U+004D M Latin capital letter M 1 1 1
U+004E N Latin capital letter N 1 1 0
U+004F O Latin capital letter O 1 1 1
U+0050 P Latin capital letter P 1 1 1
U+0051 Q Latin capital letter Q 1 0 0
U+0052 R Latin capital letter R 1 0 0
U+0053 S Latin capital letter S 1 0 0
U+0054 T Latin capital letter T 1 1 1
U+0055 U Latin capital letter U 1 0 0
U+0056 V Latin capital letter V 1 0 0
U+0057 W Latin capital letter W 1 0 0
U+0058 X Latin capital letter X 1 1 1
U+0059 Y Latin capital letter Y 1 1 1
U+005A Z Latin capital letter Z 1 1 0
U+0391 Α Greek capital letter Alpha 1 1 1
U+0392 Β Greek capital letter Beta 1 1 1
U+0393 Γ Greek capital letter Gamma 0 1 1
U+0394 Δ Greek capital letter Delta 0 1 0
U+0395 Ε Greek capital letter Epsilon 1 1 1
U+0396 Ζ Greek capital letter Zeta 1 1 0
U+0397 Η Greek capital letter Eta 1 1 1
U+0398 Θ Greek capital letter Theta 0 1 0
U+0399 Ι Greek capital letter Iota 1 1 0
U+039A Κ Greek capital letter Kappa 1 1 1
U+039B Λ Greek capital letter Lambda 0 1 1
U+039C Μ Greek capital letter Mu 1 1 1
U+039D Ν Greek capital letter Nu 1 1 0
U+039E Ξ Greek capital letter Xi 0 1 0
U+039F Ο Greek capital letter Omicron 1 1 1
U+03A0 Π Greek capital letter Pi 0 1 1
U+03A1 Ρ Greek capital letter Rho 1 1 1
U+03A3 Σ Greek capital letter Sigma 0 1 0
U+03A4 Τ Greek capital letter Tau 1 1 1
U+03A5 Υ Greek capital letter Upsilon 1 1 1
U+03A6 Φ Greek capital letter Phi 0 1 1
U+03A7 Χ Greek capital letter Chi 1 1 1
U+03A8 Ψ Greek capital letter Psi 0 1 0
U+03A9 Ω Greek capital letter Omega 0 1 0
U+0401 Ё Cyrillic capital letter Io 0 0 1
U+0410 А Cyrillic capital letter A 1 1 1
U+0411 Б Cyrillic capital letter Be 0 0 1
U+0412 В Cyrillic capital letter Ve 1 1 1
U+0413 Г Cyrillic capital letter Ghe 0 1 1
U+0414 Д Cyrillic capital letter De 0 0 1
U+0415 Е Cyrillic capital letter Ie 1 1 1
U+0416 Ж Cyrillic capital letter Zhe 0 0 1
U+0417 З Cyrillic capital letter Ze 0 0 1
U+0418 И Cyrillic capital letter I 0 0 1
U+0419 Й Cyrillic capital letter Short I 0 0 1
U+041A К Cyrillic capital letter Ka 1 1 1
U+041B Л Cyrillic capital letter El 0 1 1
U+041C М Cyrillic capital letter Em 1 1 1
U+041D Н Cyrillic capital letter En 1 1 1
U+041E О Cyrillic capital letter O 1 1 1
U+041F П Cyrillic capital letter Pe 0 1 1
U+0420 Р Cyrillic capital letter Er 1 1 1
U+0421 С Cyrillic capital letter Es 1 0 1
U+0422 Т Cyrillic capital letter Te 1 1 1
U+0423 У Cyrillic capital letter U 1 1 1
U+0424 Ф Cyrillic capital letter Ef 0 1 1
U+0425 Х Cyrillic capital letter Ha 1 1 1
U+0426 Ц Cyrillic capital letter Tse 0 0 1
U+0427 Ч Cyrillic capital letter Che 0 0 1
U+0428 Ш Cyrillic capital letter Sha 0 0 1
U+0429 Щ Cyrillic capital letter Shcha 0 0 1
U+042A Ъ Cyrillic capital letter hard sign 0 0 1
U+042B Ы Cyrillic capital letter Yeru 0 0 1
U+042C Ь Cyrillic capital letter soft sign 0 0 1
U+042D Э Cyrillic capital letter E 0 0 1
U+042E Ю Cyrillic capital letter Yu 0 0 1
U+042F Я Cyrillic capital letter Ya 0 0 1